diff options
author | Joffrey F <joffrey@docker.com> | 2018-01-03 12:16:21 -0800 |
---|---|---|
committer | Joffrey F <joffrey@docker.com> | 2018-01-03 12:16:21 -0800 |
commit | bf06a361e225c8562e872025fbc836c454cefbae (patch) | |
tree | b500e12009b8d2255cb8715f60ec15977d82db12 | |
parent | 190d95c61cc0440108de8a0c14027e72c56b6772 (diff) | |
download | docker-py-1852-dockerignore.tar.gz |
Ignore dockerignore lines that contain only whitespace1852-dockerignore
Signed-off-by: Joffrey F <joffrey@docker.com>
-rw-r--r-- | docker/api/build.py | 4 | ||||
-rw-r--r-- | tests/integration/api_build_test.py | 22 |
2 files changed, 25 insertions, 1 deletions
diff --git a/docker/api/build.py b/docker/api/build.py index 9ff2dfb..34456ab 100644 --- a/docker/api/build.py +++ b/docker/api/build.py @@ -145,7 +145,9 @@ class BuildApiMixin(object): exclude = None if os.path.exists(dockerignore): with open(dockerignore, 'r') as f: - exclude = list(filter(bool, f.read().splitlines())) + exclude = list(filter( + bool, [l.strip() for l in f.read().splitlines()] + )) context = utils.tar( path, exclude=exclude, dockerfile=dockerfile, gzip=gzip ) diff --git a/tests/integration/api_build_test.py b/tests/integration/api_build_test.py index 8e98cc9..7cc3234 100644 --- a/tests/integration/api_build_test.py +++ b/tests/integration/api_build_test.py @@ -352,6 +352,28 @@ class BuildTest(BaseAPIIntegrationTest): assert 'Successfully built' in lines[-1]['stream'] + def test_build_with_dockerfile_empty_lines(self): + base_dir = tempfile.mkdtemp() + self.addCleanup(shutil.rmtree, base_dir) + with open(os.path.join(base_dir, 'Dockerfile'), 'w') as f: + f.write('FROM busybox\n') + with open(os.path.join(base_dir, '.dockerignore'), 'w') as f: + f.write('\n'.join([ + ' ', + '', + '\t\t', + '\t ', + ])) + + stream = self.client.build( + path=base_dir, stream=True, decode=True, nocache=True + ) + + lines = [] + for chunk in stream: + lines.append(chunk) + assert 'Successfully built' in lines[-1]['stream'] + def test_build_gzip_custom_encoding(self): with self.assertRaises(errors.DockerException): self.client.build(path='.', gzip=True, encoding='text/html') |