2015-10-09 128 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

相關問題