diff --git a/kolla/cmd/build.py b/kolla/cmd/build.py index e7c54a4355..aff472d83c 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 30da779c8b..2d0bdef4d4 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 380e46021a..afc2e75465 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)