mirror of
https://github.com/docker/compose.git
synced 2025-07-07 13:54:34 +02:00
Fix build section without context.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
This commit is contained in:
parent
cea7911f56
commit
2ced83e3d9
@ -878,6 +878,9 @@ def validate_paths(service_dict):
|
|||||||
build_path = build
|
build_path = build
|
||||||
elif isinstance(build, dict) and 'context' in build:
|
elif isinstance(build, dict) and 'context' in build:
|
||||||
build_path = build['context']
|
build_path = build['context']
|
||||||
|
else:
|
||||||
|
# We have a build section but no context, so nothing to validate
|
||||||
|
return
|
||||||
|
|
||||||
if (
|
if (
|
||||||
not is_url(build_path) and
|
not is_url(build_path) and
|
||||||
|
@ -195,7 +195,12 @@
|
|||||||
"anyOf": [
|
"anyOf": [
|
||||||
{"required": ["build"]},
|
{"required": ["build"]},
|
||||||
{"required": ["image"]}
|
{"required": ["image"]}
|
||||||
]
|
],
|
||||||
|
"properties": {
|
||||||
|
"build": {
|
||||||
|
"required": ["context"]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -253,10 +253,9 @@ def handle_generic_service_error(error, path):
|
|||||||
msg_format = "{path} contains an invalid type, it should be {msg}"
|
msg_format = "{path} contains an invalid type, it should be {msg}"
|
||||||
error_msg = _parse_valid_types_from_validator(error.validator_value)
|
error_msg = _parse_valid_types_from_validator(error.validator_value)
|
||||||
|
|
||||||
# TODO: no test case for this branch, there are no config options
|
|
||||||
# which exercise this branch
|
|
||||||
elif error.validator == 'required':
|
elif error.validator == 'required':
|
||||||
msg_format = "{path} is invalid, {msg}"
|
error_msg = ", ".join(error.validator_value)
|
||||||
|
msg_format = "{path} is invalid, {msg} is required."
|
||||||
|
|
||||||
elif error.validator == 'dependencies':
|
elif error.validator == 'dependencies':
|
||||||
config_key = list(error.validator_value.keys())[0]
|
config_key = list(error.validator_value.keys())[0]
|
||||||
|
@ -1136,6 +1136,17 @@ class ConfigTest(unittest.TestCase):
|
|||||||
config.load(config_details)
|
config.load(config_details)
|
||||||
assert "Service 'one' depends on service 'three'" in exc.exconly()
|
assert "Service 'one' depends on service 'three'" in exc.exconly()
|
||||||
|
|
||||||
|
def test_load_dockerfile_without_context(self):
|
||||||
|
config_details = build_config_details({
|
||||||
|
'version': '2',
|
||||||
|
'services': {
|
||||||
|
'one': {'build': {'dockerfile': 'Dockerfile.foo'}},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
with pytest.raises(ConfigurationError) as exc:
|
||||||
|
config.load(config_details)
|
||||||
|
assert 'one.build is invalid, context is required.' in exc.exconly()
|
||||||
|
|
||||||
|
|
||||||
class NetworkModeTest(unittest.TestCase):
|
class NetworkModeTest(unittest.TestCase):
|
||||||
def test_network_mode_standard(self):
|
def test_network_mode_standard(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user