8567: Improve disk space accounting. Default to use overlay storage driver (but...
[arvados.git] / docker / migrate-docker19 / migrate.sh
1 #!/bin/bash
2
3 set -e
4
5 image_tar_keepref=$1
6 image_id=$2
7 image_repo=$3
8 image_tag=$4
9 project_uuid=$5
10 graph_driver=$6
11
12 function freespace() {
13     df -B1 /var/lib/docker | tail -n1 | sed 's/  */ /g' | cut -d' ' -f4
14 }
15
16 function start_docker {
17     /root/dnd.sh $graph_driver &
18     for i in $(seq 1 10) ; do
19         if docker version >/dev/null 2>/dev/null ; then
20             return
21         fi
22         sleep 1
23     done
24     false
25 }
26
27 function kill_docker {
28     if test -f /var/run/docker.pid ; then
29         kill $(cat /var/run/docker.pid)
30     fi
31     for i in $(seq 1 10) ; do
32         if ! docker version >/dev/null 2>/dev/null ; then
33             return
34         fi
35         sleep 1
36     done
37     false
38 }
39
40 function cleanup {
41     trap EXIT
42     kill_docker
43     rm -rf /var/lib/docker/*
44     rm -rf /root/.cache/arvados/docker/*
45     echo "Available space after cleanup is $(freespace)"
46 }
47
48 trap cleanup EXIT
49
50 start_docker
51
52 echo "Initial available space is $(freespace)"
53
54 arv-get $image_tar_keepref | docker load
55
56 docker tag $image_id $image_repo:$image_tag
57
58 docker images -a
59
60 kill_docker
61
62 echo "Available space after image load is $(freespace)"
63
64 cd /root/pkgs
65 dpkg -i libltdl7_2.4.2-1.11+b1_amd64.deb docker-engine_1.13.1-0~debian-jessie_amd64.deb
66
67 echo "Available space after image upgrade is $(freespace)"
68
69 start_docker
70
71 docker images -a
72
73 UUID=$(arv-keepdocker --force-image-format --project-uuid=$project_uuid $image_repo $image_tag)
74
75 echo "Available space after arv-keepdocker is $(freespace)"
76
77 echo "Migrated uuid is $UUID"