【发布时间】:2021-08-16 14:50:30
【问题描述】:
使用 DDEV Local 项目有时会导致运行状况检查失败,但最终会变得可用。有人如何禁用运行状况检查以更好地诊断容器中发生的情况?
【问题讨论】:
标签: docker-compose ddev
使用 DDEV Local 项目有时会导致运行状况检查失败,但最终会变得可用。有人如何禁用运行状况检查以更好地诊断容器中发生的情况?
【问题讨论】:
标签: docker-compose ddev
感谢 docker-composer 的集成,我们可以创建一个用于运行状况检查的 compose 文件并根据需要调整其设置。
开始将docker-compose.healthcheck.yaml 文件添加到您的.ddev 目录。
然后要禁用运行状况检查,它应该如下所示:
version: '3.6'
services:
web:
healthcheck:
test: ['CMD','true'] //disable the healthcheck
在本例中,我们使用['CMD','true'] 强制测试通过,而不是使用disable:true,因为禁用键无法与默认设置的其他选项配对。
此外,如果您想在容器失败之前调整timeout,您可以像这样调整撰写文件:
version: '3.6'
services:
web:
healthcheck:
timeout: 30s //set how long before healthcheck fails
您还可以通过Compose File Healthcheck 文档进一步熟悉可用的健康检查选项。
【讨论】:
要禁用 Docker 健康检查,您可以使用 test: ["NONE"]。
services:
your-service:
healthcheck:
test: ["NONE"]
https://docs.docker.com/compose/compose-file/compose-file-v3/#healthcheck
我使用 docker-compose 版本 1.25.0 和 Docker Compose Document 版本 '3.1'。
它对我不起作用,但在文档中有描述。
healthcheck:
disable: true
但是,我不知道原因,docker-compose.override.yml 的一部分不适用于该设置。父母docker-compose.yml有健康设置,我认为是错误的。
ERROR: Service "nginx" defines an invalid healthcheck: "disable: true" cannot be combined with other options
要在docker-compose.override.yml 中禁用它,我使用以下设置:
healthcheck:
test: ["CMD", "none"]
我认为禁用健康检查的另一种方法是使用不同的 docker-compose 配置:
docker-compose.yml 没有运行状况检查。docker-compose.healthcheck.yml 将与父docker-compose.yml 合并:# With healthcheck
docker-compose -f docker-compose.yml -f docker-compose.healthcheck.yml up
# With override
docker-compose up
# Without override and healthcheck
docker-compose -f docker-compose.yml up
【讨论】: