代码之家  ›  专栏  ›  技术社区  ›  terrywb

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

  •  0
  • terrywb  · 技术社区  · 5 年前

    我有个码头工人。定义web服务和数据库的yml文件。

    这个文件描述了我的主要用例,从 docker-compose up .

    docker撰写。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 .

    使用现有的数据库。yml

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

    我的问题

    在我上面描述的场景中,不需要启动db容器。

    我知道我可以创建一个单独的docker compose文件,它只会启动web服务。我想找到一个覆盖主docker compose文件的解决方案。

    通过docker compose将特定容器变成无操作容器是否有良好的实践?我想我会简单地引用一个不同的图像名称。

    0 回复  |  直到 5 年前
        1
  •  2
  •   Collin Barrett    5 年前

    我在过去使用过的一种解决方案是,只显式地声明您想要的服务的子集 up .

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

    如果 webservice 我们有依赖关系( depends_on )在 db-container ,你可以做:

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