From 9813ef84b7c66929d9592b1e3791f78c9aa30417 Mon Sep 17 00:00:00 2001 From: dupengfei <58750307@qq.com> Date: Fri, 9 Dec 2016 11:47:05 +0800 Subject: Not to pull the base images when building. Add --pull/--nopull parameter for kolla-build, when --nopull is given and the base image is already loaded, The docker-engine will not attemp to pull a newer version of the image. This makes sense when the registry server of base images is unreachable. This feature is as same to setting "image_pull_policy" to "IfNotPresent" while building images. The reason why I create this feature is that, even if I have setted base_distro_tag to a stable tag, e.g. "7" or "2016-12-13", docker still have to wait much time to fetch the version, and return failure when registry server is unreachable. This is a feature of docker build --pull=True. Change-Id: If1bd08763fb757b4f090a3163dd1dbfb8fc531d3 Implements: blueprint docker-build-nopull-base --- kolla/common/config.py | 2 ++ kolla/image/build.py | 2 +- releasenotes/notes/docker-build-nopull-base-a860d046b9059cfc.yaml | 6 ++++++ 3 files changed, 9 insertions(+), 1 deletion(-) mode change 100644 => 100755 kolla/common/config.py create mode 100644 releasenotes/notes/docker-build-nopull-base-a860d046b9059cfc.yaml diff --git a/kolla/common/config.py b/kolla/common/config.py old mode 100644 new mode 100755 index 7eb66075d..b08de9eed --- a/kolla/common/config.py +++ b/kolla/common/config.py @@ -205,6 +205,8 @@ _CLI_OPTS = [ cfg.StrOpt('template-override', help='Path to template override file'), cfg.StrOpt('logs-dir', help='Path to logs directory'), + cfg.BoolOpt('pull', default=True, + help='Attempt to pull a newer version of the base image.'), ] _BASE_OPTS = [ diff --git a/kolla/image/build.py b/kolla/image/build.py index fde63e6a0..35029f198 100755 --- a/kolla/image/build.py +++ b/kolla/image/build.py @@ -401,7 +401,7 @@ class BuildTask(DockerTask): tar.add(plugins_path, arcname='plugins') # Pull the latest image for the base distro only - pull = True if image.parent is None else False + pull = self.conf.pull if image.parent is None else False buildargs = self.update_buildargs() try: diff --git a/releasenotes/notes/docker-build-nopull-base-a860d046b9059cfc.yaml b/releasenotes/notes/docker-build-nopull-base-a860d046b9059cfc.yaml new file mode 100644 index 000000000..957165af1 --- /dev/null +++ b/releasenotes/notes/docker-build-nopull-base-a860d046b9059cfc.yaml @@ -0,0 +1,6 @@ +--- +features: + - Add --pull/--nopull parameter for kolla-build, when --nopull is given and + the base image is already loaded, The docker-engine will not attempt to + pull a newer version of the image. This makes sense when the registry + server of base images is unreachable. -- cgit v1.2.3