summary refs log tree commit diff
path: root/pkgs/build-support/docker/pull.sh
blob: 0b1e9f310ee925b1800c8f2d5f61c045fbf7ca46 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
source $stdenv/setup

mkdir -p /var/lib/docker
mkfs.ext4 /dev/vda
mount -t ext4 /dev/vda /var/lib/docker

modprobe virtio_net
dhclient eth0

mkdir -p /etc/ssl/certs/
cp "$certs" "/etc/ssl/certs/"

# from https://github.com/tianon/cgroupfs-mount/blob/master/cgroupfs-mount
mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup
cd /sys/fs/cgroup
for sys in $(awk '!/^#/ { if ($4 == 1) print $1 }' /proc/cgroups); do
  mkdir -p $sys
  if ! mountpoint -q $sys; then
    if ! mount -n -t cgroup -o $sys cgroup $sys; then
      rmdir $sys || true
    fi
  fi
done

# run docker daemon
dockerd -H tcp://127.0.0.1:5555 -H unix:///var/run/docker.sock &

until docker ps 2>/dev/null; do
  printf '.'
  sleep 1
done

rm -r $out

docker pull ${imageId}
docker save ${imageId} > $out