diff --git a/images/02-preload/Dockerfile b/images/02-preload/Dockerfile index 6aeb9165..afc02c49 100644 --- a/images/02-preload/Dockerfile +++ b/images/02-preload/Dockerfile @@ -1,4 +1,4 @@ FROM rancher/os-base -RUN ln -sf /var/lib/rancher/docker/docker /usr/bin/docker +RUN ln -sf /var/lib/rancher/engine/docker /usr/bin/docker COPY preload.sh / CMD ["/preload.sh"] diff --git a/images/02-preload/preload.sh b/images/02-preload/preload.sh index 650bda99..93526be2 100755 --- a/images/02-preload/preload.sh +++ b/images/02-preload/preload.sh @@ -4,6 +4,12 @@ set -e BASE=${1:-${PRELOAD_DIR}} BASE=${BASE:-/mnt/preload} +if [ "${SYSTEM_IMAGES}" = "true" ]; then + docker_bin=system-docker +else + docker_bin=docker +fi + should_load() { file=${1} if [[ ${file} =~ \.done$ ]]; then echo false @@ -26,7 +32,7 @@ if [ -d ${BASE} ]; then if [[ ${file} =~ \.t?gz$ ]]; then CAT="${CAT} | gunzip"; fi if [[ ${file} =~ \.t?xz$ ]]; then CAT="${CAT} | unxz"; fi wait-for-docker - CAT="${CAT} | docker load" + CAT="${CAT} | ${docker_bin} load" echo loading from ${path} eval ${CAT} || : touch ${path}.done || : diff --git a/os-config.tpl.yml b/os-config.tpl.yml index 37305b26..912c313e 100644 --- a/os-config.tpl.yml +++ b/os-config.tpl.yml @@ -253,6 +253,8 @@ rancher: - system-volumes preload-system-images: image: {{.OS_REPO}}/os-preload:{{.VERSION}}{{.SUFFIX}} + environment: + - SYSTEM_IMAGES=true labels: io.rancher.os.detach: "false" io.rancher.os.scope: system diff --git a/tests/preload_test.go b/tests/preload_test.go new file mode 100644 index 00000000..960399ee --- /dev/null +++ b/tests/preload_test.go @@ -0,0 +1,23 @@ +package integration + +import ( + . "gopkg.in/check.v1" +) + +func (s *QemuSuite) TestPreload(c *C) { + err := s.RunQemu() + c.Assert(err, IsNil) + + s.CheckCall(c, ` +docker pull busybox +sudo docker save -o /var/lib/rancher/preload/system-docker/busybox.tar busybox +sudo system-docker pull alpine +sudo system-docker save -o /var/lib/rancher/preload/docker/alpine.tar alpine`) + + s.Reboot(c) + + s.CheckCall(c, ` +sleep 5 +sudo system-docker images | grep busybox +docker images | grep alpine`) +}