已关闭,此问题为opinion-based。目前不接受答复。
**想改善这个问题吗?**更新问题,以便editing this post可以用事实和引用来回答。
4个月前关闭。
社区在4天前审查了是否重新打开此问题,并将其关闭:
原始关闭原因未解决
Improve this question
目前,我在同一个docker-compose.yml文件中有大约20个容器。并不是所有的容器都是相关的,但是它已经这样设置了,所以我可以只运行一次docker-compose up
来启动所有的容器。
我应该把它分解成多个docker-compose文件(例如每个docker-compose文件一个应用程序,其中可以包括多个容器,如前端+数据库)?将所有容器放在一个巨大的docker-compose文件中有什么明显的缺点吗?
3条答案
按热度按时间svgewumm1#
并不是所有的容器都是相关的,但它已经这样设置了,所以我可以只运行一次docker-compose up
如果你为了这个需要而将所有容器保存在一个
docker-compose.yml
文件中,那么最好是每个docker-compose文件一个项目,而不是创建所有容器。因为你可以一次启动多个合成文件。如果你想启动所有的容器,那么只需要通过
或为单个项目
您还可以探索扩展选项
Share Compose configurations between files and projects
我会选择每个docker-compose文件一个项目因为
最后,当验证组合文件时,由于没有适当的行指示,当出现错误时,配置错误只会传播到单个项目,不会影响所有其他项目。
lymnna712#
实际上,我在目前的项目中遇到了非常类似的挑战。这让我想到了写一个小脚本的想法,我称之为
docker-compose-profile
(或简称:dcp
)。我昨天在GitLab上以docker-compose-profile发布了这个。简而言之:我现在可以使用像dcp -p some-services "up -d"
这样的命令启动几个预定义的docker-compose配置文件。配置文件可能包含docker.compose.yml
中所有已定义服务的子集。有了这种机制,就可以很容易地启动在dcp.yml
中单独定义的几组服务。请随意尝试,并给予一些反馈或建议,以进一步改进。回答你的问题。。如果所有服务都属于同一个项目,则可以将它们保存在一个文件中。如果没有,则将其拆分为单独的
docker-compose.yml
文件。disho6za3#
管理多个docker-compose文件的另一个想法是扩展docker-compose功能以控制多个docker-compose.yml配置。
我在github上写了一个脚本:https://github.com/valerebron/pegaz