【问题标题】:Health check - web健康检查 - 网络
【发布时间】:2018-12-30 08:53:15
【问题描述】:

目前我正在尝试检查在 docker 容器中运行的 Web 服务是否健康,以及其 HTTP 状态代码是否为 200。

但是内置健康检查的码头工人只检查退出代码。

我正在通过终端运行这个命令:

curl -o /dev/null -s -w "%{http_code}\n" http://localhost:8080/api/health

并检查返回的状态码是否为 200。 如何将这个嵌入到 dockers healthcheck 中?

【问题讨论】:

    标签: docker http docker-compose


    【解决方案1】:

    您可以使用HEALTHCHECK 仅检查命令的退出代码值的事实,如下所示:

    1. 使用curl中的-w-s选项只输出api请求的http状态码
    2. 使用 bash 测试表达式检查状态码

    Dockerfile 中的HEALTHCHECK 可能如下所示:

    HEALTHCHECK --interval=20s --retries=2 CMD \
        [[ "$(curl -o /dev/null -s -w "%{http_code}\n" http://localhost:8080/api/health)" == "200" ]]
    

    参见文档here

    【讨论】:

      猜你喜欢
      • 2019-08-27
      • 1970-01-01
      • 2014-10-02
      • 2021-09-13
      • 2019-11-03
      • 1970-01-01
      • 1970-01-01
      • 2021-04-20
      • 2017-07-16
      相关资源
      最近更新 更多