用于包含多个存储库的Docker应用程序的Git存储库设置

Jam*_*ley 12 git docker

鉴于以下结构;

??? api/                - A PHP application, to have its own repository
??? docker/             - Docker configuration for shared containers (MySQL, Nginx)
??? docker-compose.yml  - Defines all of the services
??? web-client/         - A standalone Angular application, to have its own repository
Run Code Online (Sandbox Code Playgroud)

目前整个应用程序位于一个存储库中,但我希望拆分为单独的存储库.开发尚未开始,因此维护任何历史记录等都没有问题.

首先,确定所有的服务在根级别docker-compose去了解这一点的最好办法文件,还是应该apiweb-client更加孤立自己docker-compose,从而彻底分开管理?如果分开,是否仍然可以有一个" depends_on"另一个?

其次,为此管理存储库的最佳方法是什么?根级代码(docker-compose.ymldocker/)应该存在于一个存储库中,但这也取决于存在的其他两个存储库,可能是作为子级.我查看了git子模块,但似乎父存储库必须绑定到子节点中的特定提交,这可能会使多个并行功能难以处理?

Rob*_*ert 5

我的建议如下:

??? api/
       |___ .git
       |___ Dockerfile
       |___ ... api src ...
??? docker/             - Docker configuration for shared containers (MySQL, Nginx)
??? docker-compose.yml  - Defines all of the services
??? web-client/
        |______ .git
        |______ Dockerfile
        |______ ... web-client src ...
Run Code Online (Sandbox Code Playgroud)

每个应用程序都应该封装它的源代码和它的 Dockerfile,它们都位于同一个 git 存储库中。

然后docker-compose.yml文件将使用它们,例如:

(...)
services:
  api:
    build: ./api/
(...)
  web-client:
    build: ./web-client/
Run Code Online (Sandbox Code Playgroud)

这就是我通常看到的方式。

如果您无论如何都想使用多个 docker-compose 文件,您可能需要看看这个:https : //docs.docker.com/compose/extends/

  • 现在是老问题了,但是你的“docker/”目录中有什么? (2认同)