【发布时间】:2019-08-13 08:19:28
【问题描述】:
我正在尝试将 healthcheck 与 docker swarm 集成。我创建了自己的自定义健康检查 API 来监控容器的健康状况。 我在 yaml 文件中使用以下标签进行健康检查:
healthcheck:
test: curl -X GET -sf https://${HOSTNAME}:port/module_name/health || exit 0
interval: 30s
timeout: 3s
retries: 25
在这里,我尝试了不同的 API 响应,例如 json 对象、200 响应、500 响应,还尝试了 0 和 1 返回值。但在每种情况下,docker 都无法理解我的健康 API 的响应。容器的行为完全取决于我在测试标签的退出代码中提到的任何值,如果我设置出口 0 容器总是健康的,或者设置出口 1 容器总是不健康的。
运行状况检查将如何理解我的自定义 API 响应? 例如:如果我的自定义 API 返回 500 或 1,那么 healthcheck 应该认为这是有问题的,需要将容器标记为不健康。
谁能帮助我了解如何在 docker-swarm 中使用 healthcheck?
【问题讨论】:
标签: docker docker-swarm