我有以下Dockerfile
FROM mongo
COPY docker-healthcheck /usr/local/bin/
HEALTHCHECK CMD ["docker-healthcheck"]
docker-healthcheck看起来像这样:
#!/bin/bash
set -eo pipefail
host="$(hostname --ip-address || echo '127.0.0.1')"
if mongo --quiet "$host/test" --eval 'quit(db.runCommand({ ping: 1 }).ok ? 0 : 2)'; then
exit 0
fi
exit 1
尽管这与this example完全相同,但运行状况检查会返回以下错误:
"Output": "OCI runtime exec failed: exec failed: container_linux.go:345: starting container process caused \"exec: \\\"docker-healthcheck\\\": executable file not found in $PATH\": unknown"
答案 0 :(得分:1)
docker-healthcheck
文件的权限错误。它们是644
,但应该是755
,以使Docker能够执行。
chmod+x 755 docker-healthcheck
再次构建映像后,运行状况检查开始起作用。