当覆盖服务时,Docker组成孤立容器

我想有两个docker组成的文件,其中一个覆盖另一个。
(这个动机来自于Docker Compose Docs )
用例来自buildbot环境。 第一个docker-compose文件应该定义一个简单的服务。 这是一个将要被testing的服务。 让我们来

version: '2' services: service-node: build: context: ./res dockerfile: Dockerfile image: my/server env_file: .env 

第二个docker-compose文件(我们将其命名为docker-compose.test.yml )将覆盖服务节点以添加buildbot工作者function,并创build第二个容器,即buildbot主节点,以控制testing机器。 让我们来

 version: '2' services: service-node: build: context: ./res dockerfile: buildbot.worker.Dockerfile image: my/buildbot-worker container_name: bb-worker env_file: ./res/buildbot.worker.env environment: - BB_RES_DIR=/var/lib/buildbot networks: testlab: aliases: - bb-worker volumes: - ./vol/bldbot/worker:/home/bldbotworker depends_on: - bb-master bb-master: build: context: ./res dockerfile: buildbot.master.Dockerfile image: my/buildbot-master container_name: bb-master env_file: ./res/buildbot.master.env environment: - BB_RES_DIR=/var/lib/buildbot networks: - testlab expose: - "9989" volumes: - ./vol/bldbot/master:/var/lib/buildbot networks: testlab: driver: bridge 

通常这个configuration工作,即命令

 docker-compose -f docker-compose.yml -f docker-compose.test.yml up -d 

构build两个图像并运行这两个容器,但有一个缺点,即命令

 docker-compose ps 

只显示一个服务,bb-worker。 与此同时

 docker ps 

显示两者。
此外,命令

 docker-compose down 

仅停止一个服务,并输出消息/警告Found orphan containers 。 当然,这个信息是指bb-master。

我怎样才能重写基本docker-compose.yml文件,以便能够添加额外的非孤儿服务?

你需要运行所有的docker-compose命令,例如:

 docker-compose -f docker-compose.yml -f docker-compose.test.yml down 

或者,您可以通过将以下内容写入到相同文件夹中的.env文件来使其成为默认值:

 COMPOSE_FILE=docker-compose.yml:docker-compose.test.yml 
Interesting Posts