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
再次构建映像后,运行状况检查开始工作。
我有以下 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
再次构建映像后,运行状况检查开始工作。