mirror of https://github.com/docker/compose.git
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
|
||||
elif isinstance(build, dict) and 'context' in build:
|
||||
build_path = build['context']
|
||||
else:
|
||||
# We have a build section but no context, so nothing to validate
|
||||
return
|
||||
|
||||
if (
|
||||
not is_url(build_path) and
|
||||
|
|
|
@ -195,7 +195,12 @@
|
|||
"anyOf": [
|
||||
{"required": ["build"]},
|
||||
{"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}"
|
||||
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':
|
||||
msg_format = "{path} is invalid, {msg}"
|
||||
error_msg = ", ".join(error.validator_value)
|
||||
msg_format = "{path} is invalid, {msg} is required."
|
||||
|
||||
elif error.validator == 'dependencies':
|
||||
config_key = list(error.validator_value.keys())[0]
|
||||
|
|
|
@ -1136,6 +1136,17 @@ class ConfigTest(unittest.TestCase):
|
|||
config.load(config_details)
|
||||
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):
|
||||
def test_network_mode_standard(self):
|
||||
|
|
Loading…
Reference in New Issue