diff --git a/docker-entrypoint b/docker-entrypoint index 8fb3a45..96b494f 100755 --- a/docker-entrypoint +++ b/docker-entrypoint @@ -76,8 +76,8 @@ if [ "$1" = "autoheal" ] && [ -e "$DOCKER_SOCK" ];then do STOP_TIMEOUT=".Labels[\"autoheal.stop.timeout\"] // $AUTOHEAL_DEFAULT_STOP_TIMEOUT" get_container_info | \ - jq -r "foreach .[] as \$CONTAINER([];[]; \$CONTAINER | .Id, .Names[0], ${STOP_TIMEOUT})" | \ - while read -r CONTAINER_ID && read -r CONTAINER_NAME && read -r TIMEOUT + jq -r "foreach .[] as \$CONTAINER([];[]; \$CONTAINER | .Id, .Names[0], .State, ${STOP_TIMEOUT})" | \ + while read -r CONTAINER_ID && read -r CONTAINER_NAME && read -r CONTAINER_STATE && read -r TIMEOUT do # shellcheck disable=2039 CONTAINER_SHORT_ID=${CONTAINER_ID:0:12} @@ -86,6 +86,9 @@ if [ "$1" = "autoheal" ] && [ -e "$DOCKER_SOCK" ];then if [ "$CONTAINER_NAME" = "null" ] then echo "$DATE Container name of (${CONTAINER_SHORT_ID}) is null, which implies container does not exist - don't restart" >&2 + elif [ "$CONTAINER_STATE" = "restarting" ] + then + echo "$DATE Container $CONTAINER_NAME (${CONTAINER_SHORT_ID}) found to be restarting - don't restart" else echo "$DATE Container $CONTAINER_NAME (${CONTAINER_SHORT_ID}) found to be unhealthy - Restarting container now with ${TIMEOUT}s timeout" if ! restart_container "$CONTAINER_ID" "$TIMEOUT"