8567: Add start_docker and kill_docker functions with wait loops.
authorPeter Amstutz <peter.amstutz@curoverse.com>
Wed, 22 Mar 2017 15:57:17 +0000 (11:57 -0400)
committerPeter Amstutz <peter.amstutz@curoverse.com>
Wed, 22 Mar 2017 15:57:17 +0000 (11:57 -0400)
docker/migrate-docker19/migrate.sh

index bdc267a43cd57f966673847bf12d0c3b9dabcac7..8e39be45678aa357632dd7e4dd0bb147bcdeebc3 100755 (executable)
@@ -2,17 +2,39 @@
 
 set -e
 
+function start_docker {
+    /root/dnd.sh &
+    for i in $(seq 1 10) ; do
+        if docker version >/dev/null 2>/dev/null ; then
+            return
+        fi
+        sleep 1
+    done
+    false
+}
+
+function kill_docker {
+    if test -f /var/run/docker.pid ; then
+        kill $(cat /var/run/docker.pid)
+    fi
+    for i in $(seq 1 10) ; do
+        if ! docker version >/dev/null 2>/dev/null ; then
+            return
+        fi
+        sleep 1
+    done
+    false
+}
+
 function cleanup {
-    kill $(cat /var/run/docker.pid)
-    sleep 1
+    kill_docker
     rm -rf /var/lib/docker/*
     rm -rf /root/.cache/arvados/docker/*
 }
 
 trap cleanup EXIT
 
-/root/dnd.sh &
-sleep 2
+start_docker
 
 image_tar_keepref=$1
 image_id=$2
@@ -26,14 +48,12 @@ docker tag $image_id $image_repo:$image_tag
 
 docker images -a
 
-kill $(cat /var/run/docker.pid)
-sleep 1
+kill_docker
 
 cd /root/pkgs
-dpkg -i libltdl7_2.4.2-1.11+b1_amd64.deb  docker-engine_1.13.1-0~debian-jessie_amd64.deb
+dpkg -i libltdl7_2.4.2-1.11+b1_amd64.deb docker-engine_1.13.1-0~debian-jessie_amd64.deb
 
-/root/dnd.sh &
-sleep 2
+start_docker
 
 docker images -a