|
@@ -744,6 +744,7 @@ def merge_service_dicts(base, override, version):
|
|
|
md.merge_mapping('ulimits', parse_ulimits)
|
|
|
md.merge_mapping('networks', parse_networks)
|
|
|
md.merge_sequence('links', ServiceLink.parse)
|
|
|
+ md.merge_field('ports', merge_port_mappings, default=[])
|
|
|
|
|
|
for field in ['volumes', 'devices']:
|
|
|
md.merge_field(field, merge_path_mappings)
|
|
@@ -752,7 +753,6 @@ def merge_service_dicts(base, override, version):
|
|
|
'depends_on',
|
|
|
'expose',
|
|
|
'external_links',
|
|
|
- 'ports',
|
|
|
'volumes_from',
|
|
|
]:
|
|
|
md.merge_field(field, operator.add, default=[])
|
|
@@ -771,6 +771,10 @@ def merge_service_dicts(base, override, version):
|
|
|
return dict(md)
|
|
|
|
|
|
|
|
|
+def merge_port_mappings(base, override):
|
|
|
+ return list(set().union(base, override))
|
|
|
+
|
|
|
+
|
|
|
def merge_build(output, base, override):
|
|
|
def to_dict(service):
|
|
|
build_config = service.get('build', {})
|