From 070bf258357c85a7b4411dc97f75df7d19e9792c Mon Sep 17 00:00:00 2001 From: Jeffrey Zhang Date: Fri, 6 May 2016 17:30:47 +0800 Subject: [PATCH] Support a custom base image Add a new option(base-image) to support custom base image In default, the base-image is equal to base. When using custom image, please use command line like: ./tool/build.py --base-image my-image --base centos --base-tag 0.1 DocImpact Closes-Bug: #1573544 Change-Id: If4b9c57a2b68f6f06d3e981f30b2173064e02193 --- docker/base/Dockerfile.j2 | 2 +- kolla/cmd/build.py | 1 + kolla/common/config.py | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2 index 5cf3633c07..47d90ab6ad 100644 --- a/docker/base/Dockerfile.j2 +++ b/docker/base/Dockerfile.j2 @@ -1,4 +1,4 @@ -FROM {{ base_distro }}:{{ base_distro_tag }} +FROM {{ base_image }}:{{ base_distro_tag }} MAINTAINER {{ maintainer }} LABEL kolla_version="{{ kolla_version }}" diff --git a/kolla/cmd/build.py b/kolla/cmd/build.py index 9b818cb1de..b24cd92821 100755 --- a/kolla/cmd/build.py +++ b/kolla/cmd/build.py @@ -479,6 +479,7 @@ class KollaWorker(object): loader=jinja2.FileSystemLoader(path)) template = env.get_template(template_name) values = {'base_distro': self.base, + 'base_image': self.conf.base_image, 'base_distro_tag': self.base_tag, 'install_metatype': self.install_metatype, 'image_prefix': self.image_prefix, diff --git a/kolla/common/config.py b/kolla/common/config.py index 31836c4ba7..83ccfb0fb6 100644 --- a/kolla/common/config.py +++ b/kolla/common/config.py @@ -56,10 +56,12 @@ _CLI_OPTS = [ cfg.StrOpt('base', short='b', default='centos', choices=BASE_OS_DISTRO, deprecated_group='kolla-build', - help='The base distro to use when building'), + help='The distro type of the base image'), cfg.StrOpt('base-tag', default='latest', deprecated_group='kolla-build', help='The base distro image tag'), + cfg.StrOpt('base-image', default=None, + help='The base image name. Default is the same with base'), cfg.BoolOpt('debug', short='d', default=False, deprecated_group='kolla-build', help='Turn on debugging log level'), @@ -288,3 +290,5 @@ def parse(conf, args, usage=None, prog=None, prog=prog, version=version.cached_version_string(), default_config_files=default_config_files) + if not conf.base_image: + conf.base_image = conf.base