mirror of https://github.com/docker/compose.git
Fix handling of service.dockerfile key
Made invalid in v2 format Doesn't break build config anymore Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
parent
9cfa71ceee
commit
13063a96cb
|
@ -562,6 +562,12 @@ def normalize_v1_service_format(service_dict):
|
|||
service_dict['logging']['options'] = service_dict['log_opt']
|
||||
del service_dict['log_opt']
|
||||
|
||||
if 'dockerfile' in service_dict:
|
||||
service_dict['build'] = service_dict.get('build', {})
|
||||
service_dict['build'].update({
|
||||
'dockerfile': service_dict.pop('dockerfile')
|
||||
})
|
||||
|
||||
return service_dict
|
||||
|
||||
|
||||
|
|
|
@ -45,7 +45,6 @@
|
|||
"devices": {"type": "array", "items": {"type": "string"}, "uniqueItems": true},
|
||||
"dns": {"$ref": "#/definitions/string_or_list"},
|
||||
"dns_search": {"$ref": "#/definitions/string_or_list"},
|
||||
"dockerfile": {"type": "string"},
|
||||
"domainname": {"type": "string"},
|
||||
"entrypoint": {
|
||||
"oneOf": [
|
||||
|
|
|
@ -430,23 +430,35 @@ class ConfigTest(unittest.TestCase):
|
|||
self.assertEqual(service[0]['build']['dockerfile'], 'Dockerfile-alt')
|
||||
|
||||
def test_config_build_configuration_v2(self):
|
||||
service = config.load(
|
||||
build_config_details(
|
||||
{
|
||||
'version': 2,
|
||||
'services': {
|
||||
'web': {
|
||||
'build': '.',
|
||||
'dockerfile': 'Dockerfile-alt'
|
||||
# service.dockerfile is invalid in v2
|
||||
with self.assertRaises(ConfigurationError):
|
||||
config.load(
|
||||
build_config_details(
|
||||
{
|
||||
'version': 2,
|
||||
'services': {
|
||||
'web': {
|
||||
'build': '.',
|
||||
'dockerfile': 'Dockerfile-alt'
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
'tests/fixtures/extends',
|
||||
'filename.yml'
|
||||
},
|
||||
'tests/fixtures/extends',
|
||||
'filename.yml'
|
||||
)
|
||||
)
|
||||
).services
|
||||
self.assertTrue('context' in service[0]['build'])
|
||||
self.assertEqual(service[0]['build']['dockerfile'], 'Dockerfile-alt')
|
||||
|
||||
service = config.load(
|
||||
build_config_details({
|
||||
'version': 2,
|
||||
'services': {
|
||||
'web': {
|
||||
'build': '.'
|
||||
}
|
||||
}
|
||||
}, 'tests/fixtures/extends', 'filename.yml')
|
||||
).services[0]
|
||||
self.assertTrue('context' in service['build'])
|
||||
|
||||
service = config.load(
|
||||
build_config_details(
|
||||
|
|
Loading…
Reference in New Issue