【问题标题】:HEALTHCHECK: Dockerfile vs docker-compose.yml健康检查:Dockerfile 与 docker-compose.yml
【发布时间】:2017-11-27 22:31:11
【问题描述】:

我们正在使用 Docker Compose 文件和 Docker Swarm 部署我们的服务。我想知道将健康检查放在 Dockerfile 中是否有任何区别,或者将它放在 docker-compose.yml 中是否更好。

我觉得我已经阅读了所有可用的文档,但找不到任何东西。

docker-compose.yml

healthcheck:
    test: ["CMD", "curl", "-f", "http://localhost:8081/ping"]
    interval: 30s
    timeout: 10s

Dockerfile

HEALTHCHECK --interval=30s --timeout=10s CMD curl -f http://localhost:8081/ping

【问题讨论】:

    标签: docker docker-compose dockerfile docker-swarm


    【解决方案1】:

    向 Dockerfile 添加健康检查,将使健康检查成为镜像的一部分,因此任何从注册表中拉取镜像的人都会默认获得健康检查。

    Compose 文件的共享性通常低于它们运行的​​实际 docker 映像。 dockercompose 健康检查允许为不创建映像而是从远程注册表中提取映像的人添加/覆盖映像的健康检查。 比较适合拉取的镜像默认没有健康检查的情况。

    在您的情况下,由于您正在创建映像,因此将运行状况检查添加到 dockerfile 更有意义。

    【讨论】:

    • 请记住,它也会使图像变大一点,因为它需要安装 curl 或 wget。
    • @JohnJohnPichler:无论是在Dockerfile 还是docker-compose.yml 中指定了健康检查,图像都​​需要包含curl 或wget。
    猜你喜欢
    • 2021-04-20
    • 2021-06-25
    • 2017-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多