鉴于以下结构;
??? 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去了解这一点的最好办法文件,还是应该api和web-client更加孤立自己docker-compose,从而彻底分开管理?如果分开,是否仍然可以有一个" depends_on"另一个?
其次,为此管理存储库的最佳方法是什么?根级代码(docker-compose.yml和docker/)应该存在于一个存储库中,但这也取决于存在的其他两个存储库,可能是作为子级.我查看了git子模块,但似乎父存储库必须绑定到子节点中的特定提交,这可能会使多个并行功能难以处理?
我的建议如下:
??? 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/
| 归档时间: |
|
| 查看次数: |
839 次 |
| 最近记录: |