aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Jastrzebski (inc0) <michal.jastrzebski@intel.com>2015-08-20 21:59:16 +0200
committerinc0 <michal.jastrzebski@intel.com>2015-08-21 20:21:41 +0200
commit598fe7bad1380547fef4a4354e194da56757767d (patch)
treee3aabfac64c4dd3307c4f51ca1d229303870447e
parentfd9d11aeb47aeda4bed86edd8217dc99a09fe1cb (diff)
downloadkolla-598fe7bad1380547fef4a4354e194da56757767d.tar.gz
kolla-598fe7bad1380547fef4a4354e194da56757767d.zip
Add custom code to base docker templates
Sometimes you need custom code in Docerfiles to solve for example proxy problems or preconfigure base image in some specific way. With this commit you can insert content of custom file to the beggining of base Dockerfile to provide these changes Partially-implements: bp rhel-based-image-support Partially-implements: bp add-proxy-to-dockerfiles Partially-implements: bp build-script Change-Id: Idbfec764aad627f5c00dc09c4854d5fa1c5ac9cf
-rwxr-xr-x[-rw-r--r--]docker_templates/base/Dockerfile.j22
-rwxr-xr-xtools/build.py8
2 files changed, 10 insertions, 0 deletions
diff --git a/docker_templates/base/Dockerfile.j2 b/docker_templates/base/Dockerfile.j2
index 2c5777e7e..f1e9ecdc3 100644..100755
--- a/docker_templates/base/Dockerfile.j2
+++ b/docker_templates/base/Dockerfile.j2
@@ -1,6 +1,8 @@
FROM {{ base_distro }}:{{ base_distro_tag }}
MAINTAINER Kolla Project (https://launchpad.net/kolla)
+{{ include_header }}
+
{% if base_distro in ['fedora', 'centos', 'oraclelinux'] %}
{% if install_type == 'binary' %}
{% if base_distro in ['centos', 'oraclelinux'] %}
diff --git a/tools/build.py b/tools/build.py
index 63477a148..e199e0a4d 100755
--- a/tools/build.py
+++ b/tools/build.py
@@ -173,6 +173,10 @@ def argParser():
parser.add_argument('-d', '--debug',
help='Turn on debugging log level',
action='store_true')
+ parser.add_argument('-i', '--include-header',
+ help=('Path to custom file to be added at '
+ 'beginning of base Dockerfile'),
+ type=str)
return vars(parser.parse_args())
@@ -191,6 +195,7 @@ class KollaWorker(object):
self.prefix = self.base + '-' + self.type_ + '-'
self.config = ConfigParser.SafeConfigParser()
self.config.read(os.path.join(sys.path[0], '..', 'build.ini'))
+ self.include_header = args['include_header']
self.image_statuses_bad = {}
self.image_statuses_good = {}
@@ -225,6 +230,9 @@ class KollaWorker(object):
'install_type': self.type_,
'namespace': self.namespace,
'tag': self.tag}
+ if self.include_header:
+ with open(self.include_header, 'r') as f:
+ values['include_header'] = f.read()
content = template.render(values)
with open(os.path.join(path, 'Dockerfile'), 'w') as f:
f.write(content)