aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffrey Zhang <zhang.lei.fly@gmail.com>2016-01-08 10:13:39 +0800
committerPaul Bourke <paul.bourke@oracle.com>2016-01-18 11:42:00 +0000
commit7093d37f1825182366939cf64faa477040d29aa2 (patch)
tree4ade0243868bac6f8297499fb235a356b36ad8fd
parentd4490ea2bc62bbd3715f9804e1395671854675b2 (diff)
downloadkolla-7093d37f1825182366939cf64faa477040d29aa2.tar.gz
kolla-7093d37f1825182366939cf64faa477040d29aa2.zip
Expose the docker build_arg to build.py
With this implement, we can add variables at building stage. For example, add HTTP_PROXY and NO_PROXY when needed like below. build.py --build-args \ HTTP_PROXY:http://127.0.0.1:8080,NO_PROXY:127.0.0.1 More info about build_arg, pls check[0] [0] https://docs.docker.com/engine/reference/commandline/build/#set-build-time-variables-build-arg DocImpact Implements: bp add-buildargs Change-Id: I29ed7f536670fef59d697603dc562a69d90743c9
-rwxr-xr-xkolla/cmd/build.py3
-rw-r--r--kolla/common/config.py2
-rw-r--r--kolla/tests/test_build.py20
3 files changed, 23 insertions, 2 deletions
diff --git a/kolla/cmd/build.py b/kolla/cmd/build.py
index e7c54a435..aff472d83 100755
--- a/kolla/cmd/build.py
+++ b/kolla/cmd/build.py
@@ -261,7 +261,8 @@ class WorkerThread(Thread):
nocache=self.nocache,
rm=True,
pull=pull,
- forcerm=self.forcerm):
+ forcerm=self.forcerm,
+ buildargs=self.conf.build_args):
stream = json.loads(response.decode('utf-8'))
if 'stream' in stream:
diff --git a/kolla/common/config.py b/kolla/common/config.py
index bc821e025..fe6a33d5e 100644
--- a/kolla/common/config.py
+++ b/kolla/common/config.py
@@ -63,6 +63,8 @@ _CLI_OPTS = [
cfg.BoolOpt('debug', short='d', default=False,
deprecated_group='kolla-build',
help='Turn on debugging log level'),
+ cfg.DictOpt('build-args',
+ help='Set docker build time variables'),
cfg.StrOpt('include-header', short='i',
deprecated_group='kolla-build',
help=('Path to custom file to be added at '
diff --git a/kolla/tests/test_build.py b/kolla/tests/test_build.py
index 380e46021..afc2e7546 100644
--- a/kolla/tests/test_build.py
+++ b/kolla/tests/test_build.py
@@ -45,4 +45,22 @@ class WorkerThreadTest(base.TestCase):
mock_client().build.assert_called_once_with(
path=FAKE_IMAGE['path'], tag=FAKE_IMAGE['fullname'],
- nocache=False, rm=True, pull=True, forcerm=True)
+ nocache=False, rm=True, pull=True, forcerm=True,
+ buildargs=None)
+
+ @mock.patch('docker.Client')
+ def test_build_image_with_build_arg(self, mock_client):
+ build_args = {
+ 'HTTP_PROXY': 'http://localhost:8080',
+ 'NO_PROXY': '127.0.0.1'
+ }
+ self.conf.set_override('build_args', build_args)
+ worker = build.WorkerThread(mock.Mock(),
+ mock.Mock(),
+ self.conf)
+ worker.builder(FAKE_IMAGE)
+
+ mock_client().build.assert_called_once_with(
+ path=FAKE_IMAGE['path'], tag=FAKE_IMAGE['fullname'],
+ nocache=False, rm=True, pull=True, forcerm=True,
+ buildargs=build_args)