diff --git a/mongo/Dockerfile b/mongo/Dockerfile new file mode 100644 index 0000000..8fc6779 --- /dev/null +++ b/mongo/Dockerfile @@ -0,0 +1,5 @@ +FROM mongo + +COPY docker-healthcheck /usr/local/bin/ + +HEALTHCHECK CMD ["docker-healthcheck"] diff --git a/mongo/docker-healthcheck b/mongo/docker-healthcheck new file mode 100755 index 0000000..6361587 --- /dev/null +++ b/mongo/docker-healthcheck @@ -0,0 +1,10 @@ +#!/bin/bash +set -eo pipefail + +if mongo --quiet localhost --eval 'quit(db.runCommand({ ping: 1 }).ok ? 0 : 2)'; then + exit 0 +fi + +# If the probe returns 2 ("starting") when the container has already moved out of the "starting" state then it is treated as "unhealthy" instead. +# https://github.com/docker/docker/blob/dcc65376bac8e73bb5930fce4cddc2350bb7baa2/docs/reference/builder.md#healthcheck +exit 2