gpt4 book ai didi

docker - 如何仅针对服务进行 docker-compose up?

转载 作者:行者123 更新时间:2023-12-02 18:08:55 25 4
gpt4 key购买 nike

在我的 docker-compose.yml文件我有很多服务:

  • nginx
  • mysql
  • Redis
  • 回声
  • php
  • ...

  • 还有一些我与 docker-compose run --rm 一起使用的 CLI 实用程序:
  • 工匠
  • Composer
  • npm
  • ...

  • 当我启动我的系统时,我会做 docker-compose up .不幸的是,这也尝试启动所有 CLI 实用程序。有没有办法在我的 docker-compose 中将这两个类别分开?

    最佳答案

    更新
    docker-compose 1.28.0 开头新service profiles就是为此而生的!与 profiles您可以将服务标记为仅在特定配置文件中启动:

    services:
    nginx:
    # ...
    mysql:
    # ...
    composer:
    profiles: ["cli-only"]
    # ...
    # ...
    npm:
    profiles: ["cli-only"]
    # ...
    docker-compose up # start main services, no composer and no npm
    docker-compose run --rm composer
    docker-compose run --rm npm

    原答案
    不幸的是,目前没有方便的方法来做到这一点。官方推荐的方法是将您的命令分成自己的 docker-compose.yml :
    # start all your services
    docker-compose up

    # execute a defined command in docker-compose.cli.yml
    docker-compose -f docker-compose.cli.yml run npm update

    # if your command depends_on a service you need to merge the configs
    docker-compose -f docker-compose.yml -f docker-compose.cli.yml run npm update
    指定多个 docker-compose.yml带有 -f 的文件flag 会将它们合并在一起,参见 documentation .这允许您依赖在另一个文件中定义的服务/网络/卷。
    有关整个问题的深入讨论,请参阅 docker/compose#1896 .

    关于docker - 如何仅针对服务进行 docker-compose up?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63051200/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com