Properly merge logging dictionaries in overriding configs
Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
parent
f65f89ad8c
commit
0603b445e2
2 changed files with 169 additions and 1 deletions
|
|
@ -760,6 +760,8 @@ def merge_service_dicts(base, override, version):
|
|||
for field in ['dns', 'dns_search', 'env_file', 'tmpfs']:
|
||||
md.merge_field(field, merge_list_or_string)
|
||||
|
||||
md.merge_field('logging', merge_logging)
|
||||
|
||||
for field in set(ALLOWED_KEYS) - set(md):
|
||||
md.merge_scalar(field)
|
||||
|
||||
|
|
@ -789,6 +791,16 @@ def merge_build(output, base, override):
|
|||
return dict(md)
|
||||
|
||||
|
||||
def merge_logging(base, override):
|
||||
md = MergeDict(base, override)
|
||||
md.merge_scalar('driver')
|
||||
if md.get('driver') == base.get('driver') or base.get('driver') is None:
|
||||
md.merge_mapping('options', lambda m: m or {})
|
||||
else:
|
||||
md['options'] = override.get('options')
|
||||
return dict(md)
|
||||
|
||||
|
||||
def legacy_v1_merge_image_or_build(output, base, override):
|
||||
output.pop('image', None)
|
||||
output.pop('build', None)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue