docker-compose-如何使容器成为非操作容器?

时间:2019-11-09 00:18:28

标签: docker-compose

我有一个docker-compose.yml文件,该文件定义了Web服务和数据库。

此文件描述了以docker-compose up开头的主要用例。

docker-compose.yml

version: '3.7'
services:
  webservice:
    image: my-webservice
    ports:
    - published: 8080
      target: 8080
  db-container:
    image: my-database
    ports:
      - '3306:3306'

我有一个替代方案,其中将Web服务连接到现有数据库。

使用docker-compose -f docker-compose.yml -f use-existing-db.yml up调用此备用配置。

use-existing-db.yml

version: '3.7'
services:
  webservice:
    volumes:
    - /some/dir/db.prop:/config/db.prop

我的问题

在上述情况下,无需启动db-container。

我知道我可以创建一个单独的docker-compose文件,该文件只能启动Web服务。我想找到一个替代主要docker-compose文件的解决方案。

是否存在通过docker-compose将特定容器制成无操作容器的良好实践?我想我只是引用一个不同的图像名称。

1 个答案:

答案 0 :(得分:1)

我过去使用的一种解决方案是仅声明要up的服务的子集。

docker-compose -f docker-compose.yml -f use-existing-db.yml up webservice

如果webservicedepends_on有依赖性(db-container),则可以执行以下操作:

docker-compose -f docker-compose.yml -f use-existing-db.yml up --no-deps webservice