Docker项目结构与git submodules

当我看到使用Docker的git项目时,docker只是添加到包含源代码一个应用程序的git项目中。 但是,如果我想用docker-compose来编排我的git-projects的多个工作项目呢,因为他们一起工作(后端,前端,…)呢?

现在,我使用其他两个git项目的源代码和一些更自我创build的Dockerfiles – 所以我的撰写文件现在有7个服务(也有一些来自docker hub的公共项目)。 我还需要为不同的用例创build略有不同的.yml文件(只是使用不同的环境variables)。 有没有最好的做法,如何构build这样一个项目?

我的项目是这样的:

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 

所以如果有一个新的用例,我在我的env /文件夹中创build一个新usecase-2.yml覆盖/和一些新usecase-2.env文件。

对我来说这是合乎逻辑的,但我不知道什么是最好的做法 – 因为我没有find任何类似的项目。

如果你想使用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 repos,你可以在主要的父库repo'my my-project '中添加子模块。