Man*_*gor 50 docker docker-compose
我发现自己处于这种情况,我想暂时禁用docker-compose文件中的服务.
当然我可以发表评论,但有没有选择只说" enabled: false"?
mca*_*son 79
截至 2021 年 1 月,有一种方法可以优雅地禁用docker-compose.yml或选择性地运行某些服务而不是其他服务。Docker Compose 1.28.0 引入了对profiles密钥的支持。现在我们可以做这样的事情:
version: "3.9"
services:
base_image:
...
profiles:
- donotstart
Run Code Online (Sandbox Code Playgroud)
文档中的示例描述了如何使用此密钥创建基于--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 中。
Ali*_*i80 34
services:
dev_service:
...
profiles: ["dev"] # only runs with dev profile
Run Code Online (Sandbox Code Playgroud)
docker compose --profile dev up
Run Code Online (Sandbox Code Playgroud)
参考: https: //docs.docker.com/compose/profiles/
Von*_*onC 27
你可以简单地重新定义entrypoint或者command用一些什么都不做的东西替换所说的命令(/bin/true)
这将使容器立即退出,什么都不做.
shadi在评论中添加了以下提示:
如果您根本不想构建服务,请重新定义构建密钥以指向
Dockerfile仅具有以下内容的服务:
FROM tianon/true
ENTRYPOINT ["/true"]
Run Code Online (Sandbox Code Playgroud)
her*_*erm 18
我会将服务扩展到 0 个副本:
deploy:
replicas: 0
Run Code Online (Sandbox Code Playgroud)
不幸的是,正如文档所述,这只适用于 Docker Swarm。
Kos*_*rov 16
您可以在docker-compose.override.yaml文件中进行操作。
该文件将自动被读取docker-compose并合并到main中docker-compose.yaml。
如果您将其从Git中排除,则每个开发人员都可以调整配置(有一些限制),而无需更改原始配置docker-compose.yaml。
因此,foo可以通过在docker-compose.override.yaml以下位置重新定义其入口点来临时禁用服务:
version: "3"
services:
foo:
entrypoint: ["echo", "Service foo disabled"]
Run Code Online (Sandbox Code Playgroud)
我将以下额外行添加到我想暂时禁用的服务:
command: echo "{put your service name here} disabled"
Run Code Online (Sandbox Code Playgroud)
它无论如何都会开始,但什么都不做.
| 归档时间: |
|
| 查看次数: |
24399 次 |
| 最近记录: |