如何在Docker Compose V2中扩展服务?

时间:2015-10-09 09:07:32

标签: architecture docker docker-compose

我有三个不同的项目,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文件吗?

2 个答案:

答案 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