From 0713488faca9a473135021ad5425bf216ab54ba4 Mon Sep 17 00:00:00 2001 From: Daniel Nephin Date: Fri, 20 Feb 2015 21:19:34 -0500 Subject: [PATCH] Resolves #497 - add support for dockerfile Signed-off-by: Daniel Nephin --- docker/client.py | 10 ++++++++-- docs/api.md | 1 + tests/test.py | 6 ++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/docker/client.py b/docker/client.py index f920229466..26adf28696 100644 --- a/docker/client.py +++ b/docker/client.py @@ -275,7 +275,7 @@ def attach_socket(self, container, params=None, ws=False): def build(self, path=None, tag=None, quiet=False, fileobj=None, nocache=False, rm=False, stream=False, timeout=None, custom_context=False, encoding=None, pull=True, - forcerm=False): + forcerm=False, dockerfile=None): remote = context = headers = None if path is None and fileobj is None: raise TypeError("Either path or fileobj needs to be provided.") @@ -302,6 +302,11 @@ def build(self, path=None, tag=None, quiet=False, fileobj=None, if utils.compare_version('1.8', self._version) >= 0: stream = True + if dockerfile and utils.compare_version('1.17', self._version) < 0: + raise errors.InvalidVersion( + 'dockerfile was only introduced in API version 1.17' + ) + u = self._url('/build') params = { 't': tag, @@ -310,7 +315,8 @@ def build(self, path=None, tag=None, quiet=False, fileobj=None, 'nocache': nocache, 'rm': rm, 'forcerm': forcerm, - 'pull': pull + 'pull': pull, + 'dockerfile': dockerfile } if context is not None: diff --git a/docs/api.md b/docs/api.md index a523878d6a..9e550a96ac 100644 --- a/docs/api.md +++ b/docs/api.md @@ -63,6 +63,7 @@ correct value (e.g `gzip`). * encoding (str): The encoding for a stream. Set to `gzip` for compressing * pull (bool): Downloads any updates to the FROM image in Dockerfiles * forcerm (bool): Always remove intermediate containers, even after unsuccessful builds +* dockerfile (str): path within the build context to the Dockerfile **Returns** (generator): A generator of the build output diff --git a/tests/test.py b/tests/test.py index f55027a59a..b39410c653 100644 --- a/tests/test.py +++ b/tests/test.py @@ -2095,6 +2095,12 @@ def test_build_remote_with_registry_auth(self): except Exception as e: self.fail('Command should not raise exception: {0}'.format(e)) + def test_build_container_with_named_dockerfile(self): + try: + self.client.build('.', dockerfile='nameddockerfile') + except Exception as e: + self.fail('Command should not raise exception: {0}'.format(e)) + ####################### # PY SPECIFIC TESTS # #######################