2016-09-07 102 views
2

當我看到使用Docker的git項目時,docker剛剛添加到包含源代碼一個應用程序的git項目中。 但是如果我想使用docker-compose編排多個我的git-projects,因爲它們一起工作(後端,前端,...)怎麼辦?現在,我使用其他兩個git項目的源代碼和一些更自我創建的Dockerfiles - 因此,我的撰寫文件現在有7個服務(也有一些來自docker hub的公共服務)。 我還需要爲不同的用例創建略有不同的.yml文件(只是使用不同的環境變量)。 如何構建這樣的項目是否有最佳實踐?使用git子模塊的Docker項目結構

我的項目是這樣的:

my-project/ 
|__ env/ 
| |__ service-1/ 
| | |__ default.env 
| | |__ usecase-1.env 
| |__ service-2/ 
|  |__ default.env 
|  |__ usecase-1.env 
|__ override/ 
| |__ usecase-1.yml 
|__ src/ 
| |__ service-1/ 
| | |__ service-1/ (git submodule) 
| | |__ Dockerfile 
| |__ service-2/ 
|  |__ Dockerfile 
|__docker-compose.yml # default .yml, containing service-1 and service-2 

所以,如果有一個新的使用情況下,我裏面創建覆蓋新usecase-2.yml /,也有一些新的usecase-2.env文件我ENV /文件夾內。

對我自己來說這是合乎邏輯的,但我不知道什麼是最佳實踐 - 因爲我沒有找到任何類似的項目。

回答

3

如果你想使用git submodules,則需要按服務,而不是通過envsrc

my-project/ 
|__ service-1/ 
| |__ env/ 
| |__ src/ 
| |__ Dockerfile 
|__ override/ 
| |__ usecase-1.yml 
|__ service-2/ 
| |__ env/ 
| |__ src/ 
| |__ Dockerfile 
|__docker-compose.yml # default .yml, containing service-1 and service-2 

這樣,service-1service-2可以將自己的git的回購協議,你可以添加爲主要父回購'my-project'中的子模塊。