Kaydet (Commit) 5571d1af authored tarafından Leonty's avatar Leonty

Support 'buildargs' parameter for docker 1.9.

Signed-off-by: 's avatarLeonty Balovnev <tigreavecdesailes@gmail.com>
üst 881e24c2
import logging
import os
import re
import json
from .. import constants
from .. import errors
......@@ -16,7 +17,7 @@ class BuildApiMixin(object):
nocache=False, rm=False, stream=False, timeout=None,
custom_context=False, encoding=None, pull=False,
forcerm=False, dockerfile=None, container_limits=None,
decode=False):
decode=False, buildargs=None):
remote = context = headers = None
container_limits = container_limits or {}
if path is None and fileobj is None:
......@@ -71,6 +72,14 @@ class BuildApiMixin(object):
}
params.update(container_limits)
if buildargs:
if utils.version_gte(self._version, '1.21'):
params.update({'buildargs': json.dumps(buildargs)})
else:
raise errors.InvalidVersion(
'buildargs was only introduced in API version 1.21'
)
if context is not None:
headers = {'Content-Type': 'application/tar'}
if encoding:
......
......@@ -96,3 +96,18 @@ class BuildTest(api_test.BaseTestCase):
list(filter(None, logs.split('\n'))),
['not-ignored'],
)
@requires_api_version('1.21')
def test_build_with_buildargs(self):
script = io.BytesIO('\n'.join([
'FROM scratch',
'ARG test',
'USER $test'
]).encode('ascii'))
self.client.build(fileobj=script, tag='buildargs',
buildargs={'test': 'OK'}, stream=True)
self.tmp_imgs.append('buildargs')
info = self.client.inspect_image('buildargs')
self.assertEqual(info['Config']['User'], 'OK')
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment