HEALTHCHECK:Dockerfile与docker-compose.yml

kev*_*kev 17 docker dockerfile docker-compose docker-swarm

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

我觉得我已经阅读了所有可用的文档,但找不到任何内容.

泊坞窗,compose.yml

healthcheck:
    test: ["CMD", "curl", "-f", "http://localhost:8081/ping"]
    interval: 30s
    timeout: 10s
Run Code Online (Sandbox Code Playgroud)

Dockerfile

HEALTHCHECK --interval=30s --timeout=10s CMD curl -f http://localhost:8081/ping
Run Code Online (Sandbox Code Playgroud)

yam*_*enk 16

向Dockerfile添加运行状况检查将生成映像的运行状况检查部分,以便从注册表中提取映像的任何人都将默认进行运行状况检查.

撰写文件通常不如它们运行的​​实际docker镜像共享.dockercompose运行状况检查允许为未创建映像但是从远程注册表中提取映像的人添加/覆盖图像的运行状况检查.它更适用于拉出的图像默认情况下没有健康检查的情况.

在您的情况下,由于您正在创建映像,因此将健康检查添加到dockerfile更有意义.

  • @JohnJohnPichler:无论健康检查是在“Dockerfile”还是在“docker-compose.yml”中指定,图像都需要包含curl或wget。 (2认同)