2015-10-09 83 views
1

我有三个不同的项目,ProjectA取决于ProjectB,而ProjectB依次取决于ProjectC。我可以扩展docker-compose文件吗?

假设您只想开发ProjectC,因此我只想在运行时使用带有一个容器的设置。

ProjectB需要ProjectC,所以我必须定义一个docker-compose与两个图像。

ProjectA然后再次需要ProjectB和ProjectC,所以我担心我必须在每个docker-compose.yml文件中复制大量的依赖链得到的时间。

我知道我可以在docker-compose.yml中链接外部图像,但这意味着更多的手动设置,因为我必须检查每个项目并在其中运行docker-compose.yml。

基本上我不知道我该如何管理微服务架构的docker-compose设置。

对于缺少更好的短语:我可以扩展docker-compose.yml文件吗?

+0

总之我认为答案是目前_no_。 'extends'是非常有限的(参见https://github.com/docker/compose/issues/1617 https://github.com/docker/compose/issues/3220),并且没有'includes' /'path'或多文件撰写(见https://github.com/docker/compose/issues/318和https://github.com/docker/compose/issues/3322) – KCD

回答

1

您可以从另一个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

目前的扩展系统似乎是相当严格的因为'具有'链接'的服务不能被扩展'。 [在github上有这个问题](https://github.com/docker/compose/issues/1617)。 – k0pernikus

+0

它不再适用于v3配置文件格式。 – eRIZ

相关问题