Browse Source

Support multiple port mappings for same internal port

Signed-off-by: Andrew Burkett <[email protected]>
Andrew Burkett 11 years ago
parent
commit
f98323b79e
1 changed files with 7 additions and 1 deletions
  1. 7 1
      fig/service.py

+ 7 - 1
fig/service.py

@@ -251,7 +251,13 @@ class Service(object):
     def start_container(self, container=None, intermediate_container=None, **override_options):
         container = container or self.create_container(**override_options)
         options = dict(self.options, **override_options)
-        ports = dict(split_port(port) for port in options.get('ports') or [])
+        ports = {}
+        for port in options.get('ports') or []:
+            internal_port, external = split_port(port)
+            if internal_port in ports:
+                ports[internal_port].append(external)
+            else:
+                ports[internal_port] = [external]
 
         volume_bindings = dict(
             build_volume_binding(parse_volume_spec(volume))