diff --git a/Dockerfile b/Dockerfile index 2a86ab6..023397d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -27,7 +27,6 @@ ENV RAM_SIZE="4G" ENV CPU_CORES="2" ENV DISK_SIZE="1T" -HEALTHCHECK --interval=60s --timeout=10s --start-period=60s --retries=3 \ - CMD curl -LfSs http://localhost:80 >/dev/null || exit 1 +HEALTHCHECK --interval=60s --start-period=45s --retries=2 CMD /run/check.sh ENTRYPOINT ["/usr/bin/tini", "-s", "/run/entry.sh"] diff --git a/src/check.sh b/src/check.sh new file mode 100644 index 0000000..24f624a --- /dev/null +++ b/src/check.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +set -Eeuo pipefail + +: "${NETWORK:="Y"}" + +[ -f "/run/shm/qemu.end" ] && echo "QEMU is shutting down.." && exit 1 +[ ! -s "/run/shm/qemu.pid" ] && echo "QEMU is not running yet.." && exit 0 +[[ "$NETWORK" == [Nn]* ]] && echo "Networking is disabled.." && exit 0 + +file="/run/shm/qemu.ip" +[ ! -s "$file" ] && echo "The container has not enabled networking yet..." && exit 1 + +ip=$(<"$file") + +if ! curl -m 20 -ILfSs "http://$ip:80/" > /dev/null; then + echo "Failed to reach ZimaOS at port 80" && exit 1 +fi + +echo "Healthcheck OK" +exit 0