summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoffrey F <joffrey@docker.com>2018-01-03 12:16:21 -0800
committerJoffrey F <joffrey@docker.com>2018-01-03 12:16:21 -0800
commitbf06a361e225c8562e872025fbc836c454cefbae (patch)
treeb500e12009b8d2255cb8715f60ec15977d82db12
parent190d95c61cc0440108de8a0c14027e72c56b6772 (diff)
downloaddocker-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.py4
-rw-r--r--tests/integration/api_build_test.py22
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')