8567: Add start_docker and kill_docker functions with wait loops.
[arvados.git] / docker / migrate-docker19 / migrate.sh
1 #!/bin/bash
2
3 set -e
4
5 function start_docker {
6     /root/dnd.sh &
7     for i in $(seq 1 10) ; do
8         if docker version >/dev/null 2>/dev/null ; then
9             return
10         fi
11         sleep 1
12     done
13     false
14 }
15
16 function kill_docker {
17     if test -f /var/run/docker.pid ; then
18         kill $(cat /var/run/docker.pid)
19     fi
20     for i in $(seq 1 10) ; do
21         if ! docker version >/dev/null 2>/dev/null ; then
22             return
23         fi
24         sleep 1
25     done
26     false
27 }
28
29 function cleanup {
30     kill_docker
31     rm -rf /var/lib/docker/*
32     rm -rf /root/.cache/arvados/docker/*
33 }
34
35 trap cleanup EXIT
36
37 start_docker
38
39 image_tar_keepref=$1
40 image_id=$2
41 image_repo=$3
42 image_tag=$4
43 project_uuid=$5
44
45 arv-get $image_tar_keepref | docker load
46
47 docker tag $image_id $image_repo:$image_tag
48
49 docker images -a
50
51 kill_docker
52
53 cd /root/pkgs
54 dpkg -i libltdl7_2.4.2-1.11+b1_amd64.deb docker-engine_1.13.1-0~debian-jessie_amd64.deb
55
56 start_docker
57
58 docker images -a
59
60 UUID=$(arv-keepdocker --force-image-format --project-uuid=$project_uuid $image_repo $image_tag)
61
62 echo "Migrated uuid is $UUID"