From 99b6ec1180fad5ab85d1cc045b09c3cbfe771899 Mon Sep 17 00:00:00 2001 From: Dima Spivak Date: Fri, 12 Feb 2016 14:37:05 -0800 Subject: Add support for changes param to ContainerApiMixin.commit docker commit --changes was added to Docker in 1.6.0. Signed-off-by: Dima Spivak --- docker/api/container.py | 5 +++-- docs/api.md | 1 + tests/unit/image_test.py | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/docker/api/container.py b/docker/api/container.py index ef17c27..da4ac14 100644 --- a/docker/api/container.py +++ b/docker/api/container.py @@ -40,13 +40,14 @@ class ContainerApiMixin(object): @utils.check_resource def commit(self, container, repository=None, tag=None, message=None, - author=None, conf=None): + author=None, changes=None, conf=None): params = { 'container': container, 'repo': repository, 'tag': tag, 'comment': message, - 'author': author + 'author': author, + 'changes': changes } u = self._url("/commit") return self._result(self._post_json(u, data=conf, params=params), diff --git a/docs/api.md b/docs/api.md index 3393e68..f4f1ad4 100644 --- a/docs/api.md +++ b/docs/api.md @@ -123,6 +123,7 @@ Identical to the `docker commit` command. * tag (str): The tag to push * message (str): A commit message * author (str): The name of the author +* changes (str): Dockerfile instructions to apply while committing * conf (dict): The configuration for the container. See the [Docker remote api]( https://docs.docker.com/reference/api/docker_remote_api/) for full details. diff --git a/tests/unit/image_test.py b/tests/unit/image_test.py index a46e48e..8fd894c 100644 --- a/tests/unit/image_test.py +++ b/tests/unit/image_test.py @@ -101,7 +101,8 @@ class ImageTest(DockerClientTest): 'comment': None, 'tag': None, 'container': '3cc2351ab11b', - 'author': None + 'author': None, + 'changes': None }, timeout=DEFAULT_TIMEOUT_SECONDS ) -- cgit v1.2.1 From cf8311988259ff5b01a20bc04fc57d4daeccf3e7 Mon Sep 17 00:00:00 2001 From: Joffrey F Date: Wed, 23 Mar 2016 12:17:22 -0700 Subject: Test commit changes param Signed-off-by: Joffrey F --- tests/integration/image_test.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/integration/image_test.py b/tests/integration/image_test.py index 825f632..9f38366 100644 --- a/tests/integration/image_test.py +++ b/tests/integration/image_test.py @@ -90,6 +90,20 @@ class CommitTest(helpers.BaseTestCase): self.assertIn('Parent', img) self.assertEqual(img['Parent'], busybox_id) + def test_commit_with_changes(self): + cid = self.client.create_container(BUSYBOX, ['touch', '/test']) + self.tmp_containers.append(cid) + self.client.start(cid) + img_id = self.client.commit( + cid, changes=['EXPOSE 8000', 'CMD ["bash"]'] + ) + self.tmp_imgs.append(img_id) + img = self.client.inspect_image(img_id) + assert 'Container' in img + assert img['Container'].startswith(cid['Id']) + assert '8000/tcp' in img['Config']['ExposedPorts'] + assert img['Config']['Cmd'] == ['bash'] + class RemoveImageTest(helpers.BaseTestCase): def test_remove(self): -- cgit v1.2.1