从docker
标记的问题数量开始,我假设StackOverflow是正确的地方(而不是DevOps),如果没有,请指出我正确的地方或相应地移动这个问题
我的方案如下:
我想要实现的是在应用程序存储库中有一个docker-compose.yaml
文件,我通过docker-compose up
调用该文件,然后启动所有必需的容器if not running already,例如当我在后端应用程序库中调用docker-compose up
时启动数据库容器。
我的方法是建立一个新的git存储库,它定义了所有共享的docker镜像/容器,它有自己的docker-compose.yaml
,每当有些东西发生变化时,所有开发人员都必须运行docker-compose build
将来git commit hook)。中央docker-compose.yaml
看起来像这样
version: "3"
services:
postgres:
build: ./images/postgres
image: MY-postgres
container_name: MY-postgres-server
ports:
- "5432:5432"
httpd:
build: ./images/httpd
image: MY-httpd
container_name: MY-httpd-server
ports:
- "80:80"
描述每个图像如何构建的Dockerfile
在其自己的子文件夹中,我认为与该问题无关,基本上是alpine + apache / postgres的默认图像。
问题是:应用程序git存储库中的docker-compose.yaml
如何引用上述中心docker-compose.yaml
定义的服务/容器。
现在,自is no new problem scenario以来,我做了一些研究,老实说,各种方法和提议的解决方案令人困惑,一次various versions和兼容性,已弃用的功能等
depends_on
),而我认为此概念已被networks取代,但它是否仍在应用?还有seemed to be extends
option以及docker-compose
有一个--no-deps
选项,被描述为Don't start linked services.
。如果我省略它,我会认为它做了我需要的,但在这里,我认为问题是image/container/service external_links
right会是approach吗?version 3
)?