From 070bf258357c85a7b4411dc97f75df7d19e9792c Mon Sep 17 00:00:00 2001
From: Jeffrey Zhang <jeffrey.zhang@99cloud.net>
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
-- 
GitLab