diff options
author | Joffrey F <joffrey@docker.com> | 2016-10-04 17:35:20 -0700 |
---|---|---|
committer | Joffrey F <joffrey@docker.com> | 2016-10-10 15:39:05 -0700 |
commit | 0603b445e28502fc27850ce16dbdb158b3089f7e (patch) | |
tree | 514f6694f766cd3f8bcfe57b3698faead17ae564 /compose | |
parent | f65f89ad8c26684a314d9099fe35bcea07dbe5dc (diff) |
Properly merge logging dictionaries in overriding configs
Signed-off-by: Joffrey F <joffrey@docker.com>
Diffstat (limited to 'compose')
-rw-r--r-- | compose/config/config.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/compose/config/config.py b/compose/config/config.py index aea1e094..8582d83c 100644 --- a/compose/config/config.py +++ b/compose/config/config.py @@ -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) |