Docker 在容器内找不到健康检查命令

Docker healthcheck command not found inside container

我有以下 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 healthcheck returns 完全一样,但出现以下错误:
"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"

docker-healthcheck 文件的权限错误。它们是 644 但应该是 755 以便 Docker 能够执行。

chmod+x 755 docker-healthcheck

再次构建映像后,运行状况检查开始工作。