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