From 20f23f33167f3e2487fe2d81cb24c22fac580537 Mon Sep 17 00:00:00 2001 From: dcharbonnier Date: Thu, 9 Nov 2017 11:32:34 +0100 Subject: [PATCH 1/2] try to restart forever --- docker-entrypoint | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/docker-entrypoint b/docker-entrypoint index 1b059a2..edb94b0 100755 --- a/docker-entrypoint +++ b/docker-entrypoint @@ -2,8 +2,11 @@ set -e DOCKER_SOCK=/tmp/docker.sock +TMP_DIR=/tmp/restart if [ "$1" = 'autoheal' ] && [ -e ${DOCKER_SOCK} ]; then + + mkdir $TMP_DIR # https://docs.docker.com/engine/api/v1.25/ @@ -27,15 +30,16 @@ if [ "$1" = 'autoheal' ] && [ -e ${DOCKER_SOCK} ]; then HEALTH=$(curl --no-buffer -s -XGET --unix-socket ${DOCKER_SOCK} http://localhost/containers/${CONTAINER}/json | jq -r .State.Health.Status) if [ "unhealthy" = "$HEALTH" ]; then DATE=$(date +%d-%m-%Y" "%H:%M:%S) - echo "$DATE Container ${CONTAINER:0:12} found to be unhealthy. Restarting container ..." - # Note: kill and stop didn't honor the restart policy - #curl --no-buffer -s -XPOST --data '{"signal":"SIGKILL"}' --unix-socket ${DOCKER_SOCK} http://localhost/containers/${CONTAINER}/kill - curl --no-buffer -s -XPOST --unix-socket ${DOCKER_SOCK} http://localhost/containers/${CONTAINER}/restart + echo "$DATE Container ${CONTAINER:0:12} found to be unhealthy" + touch "$TMPDIR/$CONTAINER" fi done - + for CONTAINER in `ls $TMPDIR`; do + DATE=$(date +%d-%m-%Y" "%H:%M:%S) + echo "$DATE Restarting container ${CONTAINER:0:12}" + curl -f --no-buffer -s -XPOST --unix-socket ${DOCKER_SOCK} http://localhost/containers/${CONTAINER}/restart && rm "$TMPDIR/$CONTAINER" || echo "$DATE Restarting container ${CONTAINER:0:12} failed" done else exec "$@" -fi \ No newline at end of file +fi From 03c5a74d84f967aeabfeda722cd121c26202be98 Mon Sep 17 00:00:00 2001 From: dcharbonnier Date: Mon, 13 Nov 2017 15:10:13 +0100 Subject: [PATCH 2/2] fix variable name --- docker-entrypoint | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docker-entrypoint b/docker-entrypoint index edb94b0..8e15ce7 100755 --- a/docker-entrypoint +++ b/docker-entrypoint @@ -31,13 +31,14 @@ if [ "$1" = 'autoheal' ] && [ -e ${DOCKER_SOCK} ]; then if [ "unhealthy" = "$HEALTH" ]; then DATE=$(date +%d-%m-%Y" "%H:%M:%S) echo "$DATE Container ${CONTAINER:0:12} found to be unhealthy" - touch "$TMPDIR/$CONTAINER" + touch "$TMP_DIR/$CONTAINER" fi done - for CONTAINER in `ls $TMPDIR`; do + for CONTAINER in `ls $TMP_DIR`; do DATE=$(date +%d-%m-%Y" "%H:%M:%S) echo "$DATE Restarting container ${CONTAINER:0:12}" - curl -f --no-buffer -s -XPOST --unix-socket ${DOCKER_SOCK} http://localhost/containers/${CONTAINER}/restart && rm "$TMPDIR/$CONTAINER" || echo "$DATE Restarting container ${CONTAINER:0:12} failed" + curl -f --no-buffer -s -XPOST --unix-socket ${DOCKER_SOCK} http://localhost/containers/${CONTAINER}/restart && rm "$TMP_DIR/$CONTAINER" || echo "$DATE Restarting container ${CONTAINER:0:12} failed" + done done else