diff --git a/run/check.sh b/run/check.sh index 0b74eb7..8cfc61b 100644 --- a/run/check.sh +++ b/run/check.sh @@ -1,18 +1,39 @@ #!/usr/bin/env bash set -u -# Docker Healthcheck +# Retrieve guest info for Docker healthcheck +RESPONSE=$(curl -s -m 5 -S http://127.0.0.1:2210/read?command=10 2>&1) -: ${DHCP:='N'} - -if [[ "${DHCP}" == [Yy1]* ]]; then - PORT=5555 - IP="127.0.0.1" -else - PORT=5000 - IP="20.20.20.21" +if [[ ! "${RESPONSE}" =~ "\"success\"" ]] ; then + echo "Failed to connect to guest: $RESPONSE" + exit 1 fi +# Retrieve the HTTP port number + +if [[ ! "${RESPONSE}" =~ "\"http_port\"" ]] ; then + echo "Failed to parse response from guest: $RESPONSE" + exit 1 +fi + +rest=${RESPONSE#*http_port} +rest=${rest#*:} +rest=${rest%%,*} +PORT=${rest%%\"*} + +# Retrieve the IP address + +if [[ ! "${RESPONSE}" =~ "eth0" ]] ; then + echo "Failed to parse response from guest: $RESPONSE" + exit 1 +fi + +rest=${RESPONSE#*eth0} +rest=${rest#*ip} +rest=${rest#*:} +rest=${rest#*\"} +IP=${rest%%\"*} + if ! curl -m 3 -ILfSs "http://${IP}:${PORT}/" > /dev/null; then echo "Failed to reach ${IP}:${PORT}" exit 1