我们正在运行Docker Swarm + Ceph。一切顺利。我们计划将更多内部开发的以及第三方应用程序移至Swarm。现在我遇到的问题如下:
假设我将10个第三方应用程序部署为Swarm堆栈。我使用Docker stack deploy
命令执行此操作。我为其提供了docker-compose文件(通常,该文件又由通过docker-compose config编译的多个docker-compose-*。yml文件组成)。现在,如果我想更改堆栈中的某些内容,则通常需要初始的compose文件。是否有用于docker-compose部署描述符的注册表?像Docker映像注册表一样,但用于docker-compose描述符?
我的想法之一是使用某些目录结构维护Git或Mercurial存储库以对描述符进行版本控制。这个想法看起来很有趣,但仅适用于第三方应用程序。对于我们自己的应用程序,这会增加一个问题,因为我们经常使用CI / CD。这意味着我们需要在部署过程中再签出一个存储库,为我们的应用替换部署描述符并提交它们。这可能有点棘手,因为它可能导致合并冲突等。
理想情况下,我正在寻找的解决方案将提供一种简单的方法来获取特定(已部署)堆栈的最新版本的部署描述符,同时保留它们的先前版本。
当文件过多时,如何管理docker-compose文件?