在 DDEV-Local 中使用 Compose 文件控制 Healthcheck
Controlling Healthcheck with a Compose file in DDEV-Local
使用 DDEV Local 的项目有时会无法通过健康检查,但最终会变得可用。有人如何禁用健康检查以更好地诊断容器中发生的事情?
感谢 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 文档进一步熟悉健康检查的可用选项。
选项 1
要禁用 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 文档版本 '3.1'。
它对我不起作用,但在文档中有描述。
healthcheck:
disable: true
选项 2
但是,我不知道什么原因,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"]
选项 3
我认为另一种禁用健康检查的方法是使用不同的 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
使用 DDEV Local 的项目有时会无法通过健康检查,但最终会变得可用。有人如何禁用健康检查以更好地诊断容器中发生的事情?
感谢 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 文档进一步熟悉健康检查的可用选项。
选项 1
要禁用 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 文档版本 '3.1'。
它对我不起作用,但在文档中有描述。
healthcheck:
disable: true
选项 2
但是,我不知道什么原因,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"]
选项 3
我认为另一种禁用健康检查的方法是使用不同的 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