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:
Joffrey F 2016-01-14 12:10:42 -08:00
parent 9cfa71ceee
commit 13063a96cb
3 changed files with 33 additions and 16 deletions

View File

@ -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

View File

@ -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": [

View File

@ -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(