mirror of https://github.com/docker/docker-py.git
				
				
				
			Never exclude Dockerfile from the build context.
Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
		
							parent
							
								
									575305fdba
								
							
						
					
					
						commit
						90760cfe1d
					
				|  | @ -128,7 +128,13 @@ def exclude_paths(root, patterns, dockerfile=None): | |||
|     paths = get_paths(root, exclude_patterns, include_patterns, | ||||
|                       has_exceptions=len(exceptions) > 0) | ||||
| 
 | ||||
|     return set(paths) | ||||
|     return set(paths).union( | ||||
|         # If the Dockerfile is in a subdirectory that is excluded, get_paths | ||||
|         # will not descend into it and the file will be skipped. This ensures | ||||
|         # it doesn't happen. | ||||
|         set([dockerfile]) | ||||
|         if os.path.exists(os.path.join(root, dockerfile)) else set() | ||||
|     ) | ||||
| 
 | ||||
| 
 | ||||
| def should_include(path, exclude_patterns, include_patterns): | ||||
|  |  | |||
|  | @ -736,6 +736,7 @@ class ExcludePathsTest(base.BaseTestCase): | |||
|         'foo/b.py', | ||||
|         'foo/bar/a.py', | ||||
|         'bar/a.py', | ||||
|         'foo/Dockerfile3', | ||||
|     ] | ||||
| 
 | ||||
|     all_paths = set(dirs + files) | ||||
|  | @ -775,6 +776,14 @@ class ExcludePathsTest(base.BaseTestCase): | |||
|         assert self.exclude(['*'], dockerfile='Dockerfile.alt') == \ | ||||
|             set(['Dockerfile.alt', '.dockerignore']) | ||||
| 
 | ||||
|         assert self.exclude(['*'], dockerfile='foo/Dockerfile3') == \ | ||||
|             set(['foo/Dockerfile3', '.dockerignore']) | ||||
| 
 | ||||
|     def test_exclude_dockerfile_child(self): | ||||
|         includes = self.exclude(['foo/'], dockerfile='foo/Dockerfile3') | ||||
|         assert 'foo/Dockerfile3' in includes | ||||
|         assert 'foo/a.py' not in includes | ||||
| 
 | ||||
|     def test_single_filename(self): | ||||
|         assert self.exclude(['a.py']) == self.all_paths - set(['a.py']) | ||||
| 
 | ||||
|  | @ -825,28 +834,31 @@ class ExcludePathsTest(base.BaseTestCase): | |||
|     def test_directory(self): | ||||
|         assert self.exclude(['foo']) == self.all_paths - set([ | ||||
|             'foo', 'foo/a.py', 'foo/b.py', | ||||
|             'foo/bar', 'foo/bar/a.py', | ||||
|             'foo/bar', 'foo/bar/a.py', 'foo/Dockerfile3' | ||||
|         ]) | ||||
| 
 | ||||
|     def test_directory_with_trailing_slash(self): | ||||
|         assert self.exclude(['foo']) == self.all_paths - set([ | ||||
|             'foo', 'foo/a.py', 'foo/b.py', | ||||
|             'foo/bar', 'foo/bar/a.py', | ||||
|             'foo/bar', 'foo/bar/a.py', 'foo/Dockerfile3' | ||||
|         ]) | ||||
| 
 | ||||
|     def test_directory_with_single_exception(self): | ||||
|         assert self.exclude(['foo', '!foo/bar/a.py']) == self.all_paths - set([ | ||||
|             'foo/a.py', 'foo/b.py', 'foo', 'foo/bar' | ||||
|             'foo/a.py', 'foo/b.py', 'foo', 'foo/bar', | ||||
|             'foo/Dockerfile3' | ||||
|         ]) | ||||
| 
 | ||||
|     def test_directory_with_subdir_exception(self): | ||||
|         assert self.exclude(['foo', '!foo/bar']) == self.all_paths - set([ | ||||
|             'foo/a.py', 'foo/b.py', 'foo' | ||||
|             'foo/a.py', 'foo/b.py', 'foo', | ||||
|             'foo/Dockerfile3' | ||||
|         ]) | ||||
| 
 | ||||
|     def test_directory_with_wildcard_exception(self): | ||||
|         assert self.exclude(['foo', '!foo/*.py']) == self.all_paths - set([ | ||||
|             'foo/bar', 'foo/bar/a.py', 'foo' | ||||
|             'foo/bar', 'foo/bar/a.py', 'foo', | ||||
|             'foo/Dockerfile3' | ||||
|         ]) | ||||
| 
 | ||||
|     def test_subdirectory(self): | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue