Ignore build context path validation when it is not necessary

Signed-off-by: Vitor Anjos <vitorbartier@hotmail.com>
This commit is contained in:
Vitor Anjos 2020-06-27 15:07:32 -03:00 committed by Ulysses Souza
parent b23eb2deab
commit 17b41b27a8
3 changed files with 36 additions and 1 deletions

View File

@ -729,9 +729,22 @@ def validate_extended_service_dict(service_dict, filename, service):
def validate_service(service_config, service_names, config_file):
def build_image():
args = sys.argv[1:]
if 'pull' in args:
return False
if '--no-build' in args:
return False
return True
service_dict, service_name = service_config.config, service_config.name
validate_service_constraints(service_dict, service_name, config_file)
validate_paths(service_dict)
if build_image():
# We only care about valid paths when actually building images
validate_paths(service_dict)
validate_cpu(service_config)
validate_ulimits(service_config)

View File

@ -748,6 +748,20 @@ services:
assert BUILD_CACHE_TEXT not in result.stdout
assert BUILD_PULL_TEXT not in result.stdout
def test_up_ignore_missing_build_directory(self):
self.base_dir = 'tests/fixtures/no-build'
result = self.dispatch(['up', '--no-build'])
assert 'alpine exited with code 0' in result.stdout
self.base_dir = None
def test_pull_ignore_missing_build_directory(self):
self.base_dir = 'tests/fixtures/no-build'
result = self.dispatch(['pull'])
assert 'Pulling my-alpine' in result.stderr
self.base_dir = None
def test_build_pull(self):
# Make sure we have the latest busybox already
pull_busybox(self.client)

View File

@ -0,0 +1,8 @@
version: "3"
services:
my-alpine:
image: alpine:3.12
container_name: alpine
entrypoint: 'echo It works!'
build:
context: /this/path/doesnt/exists # and we don't really care. We just want to run containers already pulled.