diff options
author | Joffrey F <joffrey@docker.com> | 2017-12-19 13:21:56 -0800 |
---|---|---|
committer | Joffrey F <joffrey@docker.com> | 2017-12-19 13:50:32 -0800 |
commit | 2250fa2ebd03f5f01db06fa85998212d97882680 (patch) | |
tree | 8700024a934a768f64ac87378d6a9a241084f7b8 | |
parent | ac68a36a8934175b15cf61517036a774a11309ea (diff) | |
download | docker-py-1813-autoremove-error.tar.gz |
Don't attempt to retrieve container's stderr if `auto_remove` was set1813-autoremove-error
Signed-off-by: Joffrey F <joffrey@docker.com>
-rw-r--r-- | docker/models/containers.py | 4 | ||||
-rw-r--r-- | tests/integration/models_containers_test.py | 14 |
2 files changed, 16 insertions, 2 deletions
diff --git a/docker/models/containers.py b/docker/models/containers.py index f16b7cd..6ba308e 100644 --- a/docker/models/containers.py +++ b/docker/models/containers.py @@ -737,7 +737,9 @@ class ContainerCollection(Collection): exit_status = container.wait() if exit_status != 0: - out = container.logs(stdout=False, stderr=True) + out = None + if not kwargs.get('auto_remove'): + out = container.logs(stdout=False, stderr=True) if remove: container.remove() diff --git a/tests/integration/models_containers_test.py b/tests/integration/models_containers_test.py index 7707ae2..d246189 100644 --- a/tests/integration/models_containers_test.py +++ b/tests/integration/models_containers_test.py @@ -1,5 +1,7 @@ -import docker import tempfile + +import docker +import pytest from .base import BaseIntegrationTest, TEST_API_VERSION from ..helpers import random_name, requires_api_version @@ -114,6 +116,16 @@ class ContainerCollectionTest(BaseIntegrationTest): ) assert out == b'hello\n' + @requires_api_version('1.25') + def test_run_with_auto_remove_error(self): + client = docker.from_env(version=TEST_API_VERSION) + with pytest.raises(docker.errors.ContainerError) as e: + client.containers.run( + 'alpine', 'sh -c ">&2 echo error && exit 1"', auto_remove=True + ) + assert e.value.exit_status == 1 + assert e.value.stderr is None + def test_run_with_streamed_logs(self): client = docker.from_env(version=TEST_API_VERSION) out = client.containers.run( |