有什么方法可以禁用 docker-compose.yml 中的服务

新手上路,请多包涵

我发现自己处于这种情况,我想暂时禁用 docker-compose 文件中的服务。

当然我可以评论它,但有什么选择只说“ enabled: false ”?

原文由 Mandragor 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

您可以简单地重新定义 entrypointcommand 以便用什么都不做的东西替换所述命令( /bin/true

这将使容器立即退出,什么也不做。


shadi 在评论中添加了以下提示:

如果您根本不希望构建服务,请重新定义构建密钥以指向 Dockerfile 只有:

 FROM tianon/true
ENTRYPOINT ["/true"]


5andr0 在评论 中指出 顶级部分 x-disabled: (类似扩展字段)

更方便:将禁用的服务移动到顶级部分 x-disabled: 而不是 services:

带有 x- 前缀的部分将被解析,但如果没有以预期的方式用作扩展字段,则会被忽略。

原文由 VonC 发布,翻译遵循 CC BY-SA 4.0 许可协议

截至 2021 年 1 月,有一种方法可以优雅地禁用 docker-compose.yml 中的服务,或者有选择地运行某些服务而不是其他服务。 Docker Compose 1.28.0 引入了对 profiles 键的支持。现在我们可以做类似的事情:

 version: "3.9"
services:
  base_image:
    ...
    profiles:
      - donotstart

文档中的示例描述了如何使用此密钥创建基于命令行上的 --profile 选项一起运行的容器组。在此处查看页面: https ://docs.docker.com/compose/profiles/

更新

Compose V2 beta 5 ( docker compose ) 中对配置文件的支持正常工作。 Compose V2 beta 6 已包含在 2021-07-08 发布的 Docker Desktop 3.5.2 中。

原文由 mcarson 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进