Merge pull request #502 from cpuguy83/498_dockerignore_special_names

Add special cases for .dockerignore
This commit is contained in:
Joffrey F 2015-02-27 11:56:19 -08:00
commit 39ee5981b4
2 changed files with 10 additions and 0 deletions

View File

@ -297,6 +297,12 @@ class Client(requests.Session):
if os.path.exists(dockerignore):
with open(dockerignore, 'r') as f:
exclude = list(filter(bool, f.read().split('\n')))
# These are handled by the docker daemon and should not be
# excluded on the client
if 'Dockerfile' in exclude:
exclude.remove('Dockerfile')
if '.dockerignore' in exclude:
exclude.remove(".dockerignore")
context = utils.tar(path, exclude=exclude)
if utils.compare_version('1.8', self._version) >= 0:

View File

@ -1325,6 +1325,8 @@ class TestBuildWithDockerignore(Cleanup, BaseTestCase):
with open(os.path.join(base_dir, '.dockerignore'), 'w') as f:
f.write("\n".join([
'node_modules',
'Dockerfile',
'.dockerginore',
'', # empty line
]))
@ -1343,6 +1345,8 @@ class TestBuildWithDockerignore(Cleanup, BaseTestCase):
chunk = chunk.decode('utf-8')
logs += chunk
self.assertFalse('node_modules' in logs)
self.assertFalse('Dockerfile' in logs)
self.assertFalse('.dockerginore' in logs)
self.assertTrue('not-ignored' in logs)
#######################