mirror of https://github.com/docker/docker-py.git
Support 'buildargs' parameter for docker 1.9.
Signed-off-by: Leonty Balovnev <tigreavecdesailes@gmail.com>
This commit is contained in:
parent
881e24c231
commit
5571d1af76
|
|
@ -1,6 +1,7 @@
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
|
import json
|
||||||
|
|
||||||
from .. import constants
|
from .. import constants
|
||||||
from .. import errors
|
from .. import errors
|
||||||
|
|
@ -16,7 +17,7 @@ class BuildApiMixin(object):
|
||||||
nocache=False, rm=False, stream=False, timeout=None,
|
nocache=False, rm=False, stream=False, timeout=None,
|
||||||
custom_context=False, encoding=None, pull=False,
|
custom_context=False, encoding=None, pull=False,
|
||||||
forcerm=False, dockerfile=None, container_limits=None,
|
forcerm=False, dockerfile=None, container_limits=None,
|
||||||
decode=False):
|
decode=False, buildargs=None):
|
||||||
remote = context = headers = None
|
remote = context = headers = None
|
||||||
container_limits = container_limits or {}
|
container_limits = container_limits or {}
|
||||||
if path is None and fileobj is None:
|
if path is None and fileobj is None:
|
||||||
|
|
@ -71,6 +72,14 @@ class BuildApiMixin(object):
|
||||||
}
|
}
|
||||||
params.update(container_limits)
|
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:
|
if context is not None:
|
||||||
headers = {'Content-Type': 'application/tar'}
|
headers = {'Content-Type': 'application/tar'}
|
||||||
if encoding:
|
if encoding:
|
||||||
|
|
|
||||||
|
|
@ -96,3 +96,18 @@ class BuildTest(api_test.BaseTestCase):
|
||||||
list(filter(None, logs.split('\n'))),
|
list(filter(None, logs.split('\n'))),
|
||||||
['not-ignored'],
|
['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')
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue