我正在尝试向Docker容器添加运行状况检查,因此在Dockerfile中我添加了这一行
HEALTHCHECK CMD curl --fail http://localhost:8080/health || exit 1
大致基于本教程:https://howchoo.com/g/zwjhogrkywe/how-to-add-a-health-check-to-your-docker-container。在我的docker-compose文件中,我添加了运行状况检查行,如下所示:
healthcheck:
test: ["CMD", "curl", "--silent", "--fail", "http://localhost:8080/health"]
,但是容器始终报告不健康。因此,如果我执行docker exec -it my-container /bin/bash
并进入容器内部,然后执行运行状况请求,则会得到以下信息:
$ curl --fail http://localhost:8080/health
curl: (22) The requested URL returned error: 411 Length Required
我想念什么? Nginx已经安装在容器中,因此我想简单地使带有/health
的URL起作用。
答案 0 :(得分:1)
我放弃了在HEALTHCHECK
中使用Dockerfile
命令,而是通过添加
nginx.conf
文件
location /health {
access_log off;
return 200 "healthy\n";
}
docker-compose.yml
保持不变。
这对我来说足够好。