mirror of
https://github.com/docker/compose.git
synced 2025-07-24 22:24:41 +02:00
Improve merging for several service config attributes
All uniqueItems lists in the config now receive the same treatment removing duplicates. Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
parent
842e372258
commit
c4229b469a
@ -4,7 +4,6 @@ from __future__ import unicode_literals
|
|||||||
import functools
|
import functools
|
||||||
import logging
|
import logging
|
||||||
import ntpath
|
import ntpath
|
||||||
import operator
|
|
||||||
import os
|
import os
|
||||||
import string
|
import string
|
||||||
import sys
|
import sys
|
||||||
@ -744,18 +743,15 @@ def merge_service_dicts(base, override, version):
|
|||||||
md.merge_mapping('ulimits', parse_ulimits)
|
md.merge_mapping('ulimits', parse_ulimits)
|
||||||
md.merge_mapping('networks', parse_networks)
|
md.merge_mapping('networks', parse_networks)
|
||||||
md.merge_sequence('links', ServiceLink.parse)
|
md.merge_sequence('links', ServiceLink.parse)
|
||||||
md.merge_field('ports', merge_port_mappings, default=[])
|
|
||||||
|
|
||||||
for field in ['volumes', 'devices']:
|
for field in ['volumes', 'devices']:
|
||||||
md.merge_field(field, merge_path_mappings)
|
md.merge_field(field, merge_path_mappings)
|
||||||
|
|
||||||
for field in [
|
for field in [
|
||||||
'depends_on',
|
'ports', 'cap_add', 'cap_drop', 'expose', 'external_links',
|
||||||
'expose',
|
'security_opt', 'volumes_from', 'depends_on',
|
||||||
'external_links',
|
|
||||||
'volumes_from',
|
|
||||||
]:
|
]:
|
||||||
md.merge_field(field, operator.add, default=[])
|
md.merge_field(field, merge_unique_items_lists, default=[])
|
||||||
|
|
||||||
for field in ['dns', 'dns_search', 'env_file', 'tmpfs']:
|
for field in ['dns', 'dns_search', 'env_file', 'tmpfs']:
|
||||||
md.merge_field(field, merge_list_or_string)
|
md.merge_field(field, merge_list_or_string)
|
||||||
@ -771,8 +767,8 @@ def merge_service_dicts(base, override, version):
|
|||||||
return dict(md)
|
return dict(md)
|
||||||
|
|
||||||
|
|
||||||
def merge_port_mappings(base, override):
|
def merge_unique_items_lists(base, override):
|
||||||
return list(set().union(base, override))
|
return sorted(set().union(base, override))
|
||||||
|
|
||||||
|
|
||||||
def merge_build(output, base, override):
|
def merge_build(output, base, override):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user