在容器内找不到Docker healthcheck命令

时间:2019-08-08 15:37:06

标签: mongodb docker docker-image docker-build

我有以下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"

1 个答案:

答案 0 :(得分:1)

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

chmod+x 755 docker-healthcheck

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