From 679fc1a20850f7e70b9ac128c90490216d732fb7 Mon Sep 17 00:00:00 2001 From: niusmallnan Date: Thu, 16 May 2019 14:11:17 +0800 Subject: [PATCH] Autoload the predefined user images --- cmd/control/preload.go | 14 ++++++++++++++ config/types.go | 1 + scripts/tar-images | 3 +++ 3 files changed, 18 insertions(+) diff --git a/cmd/control/preload.go b/cmd/control/preload.go index 01dada41..ac4992de 100644 --- a/cmd/control/preload.go +++ b/cmd/control/preload.go @@ -54,6 +54,20 @@ func PreloadImages(clientFactory func() (dockerClient.APIClient, error), imagesD return err } + // try to load predefined user images + if imagesDir == userImagesPreloadDirectory { + oldUserImgName := path.Join(config.ImagesPath, config.UserImages) + userImgfile, err := os.Stat(oldUserImgName) + if err == nil { + newUserImgName := path.Join(userImagesPreloadDirectory, userImgfile.Name()) + if _, err = os.Stat(newUserImgName); os.IsNotExist(err) { + if err := os.Symlink(oldUserImgName, newUserImgName); err != nil { + log.Error(err) + } + } + } + } + files, err := ioutil.ReadDir(imagesDir) if err != nil { return err diff --git a/config/types.go b/config/types.go index 47adf855..cbf32c5d 100644 --- a/config/types.go +++ b/config/types.go @@ -23,6 +23,7 @@ const ( ImagesPath = "/usr/share/ros" InitImages = "images-init.tar" SystemImages = "images-system.tar" + UserImages = "images-user.tar" Debug = false SystemDockerBin = "/usr/bin/system-dockerd" DefaultDind = "rancher/os-dind:17.12.1" diff --git a/scripts/tar-images b/scripts/tar-images index e2942b16..d2f0a15f 100755 --- a/scripts/tar-images +++ b/scripts/tar-images @@ -34,6 +34,9 @@ for i in ${IMAGES}; do done for i in ${APPEND_USER_IMAGES}; do + if ! docker inspect $i >/dev/null 2>&1; then + docker pull ${i} + fi USER_IMAGES="${USER_IMAGES} ${i}" done