我有三个不同的项目,ProjectA依赖于ProjectB,而ProjectB依赖于ProjectC。
假设您只想开发ProjectC,所以我想在运行时只使用一个容器的设置。
ProjectB需要ProjectC,所以我必须定义一个包含两个图像的docker-compose。
ProjectA然后再次需要ProjectB和ProjectC,所以我担心我必须在每个docker-compose.yml
文件中复制很多,依赖关系链得到的时间越长。
我知道我可以在docker-compose.yml中链接外部图像,但这意味着更多的手动设置,因为我必须检查每个项目并在每个项目中运行docker-compose.yml。
基本上我想知道如何管理微服务架构的docker-compose设置。
缺少更好的短语:我可以扩展docker-compose.yml文件吗?
答案 0 :(得分:2)
您可以从另一个YAML文件扩展docker-compose.yml中的服务。只需在docker-compose.yml中使用extends键。
例如:
projectC.yml
webapp:
build: .
environment:
- KEY=VALUE
ports:
- "8000:8000"
projectB.yml
web:
extends:
file: projectC.yml
service: webapp
答案 1 :(得分:2)
下一个版本(1.5.0)将支持扩展合成的方法(参见https://github.com/docker/compose/pull/2051)。如果你想尝试一下,它现在在掌握。
我认为您所描述的内容非常接近此提案https://github.com/docker/compose/issues/318