From fb69512008afb9973baf00b2de48767fa53e39e3 Mon Sep 17 00:00:00 2001 From: Aanand Prasad Date: Thu, 19 Dec 2013 12:26:58 +0000 Subject: [PATCH] Set port_bindings to None when starting a one-off container in 'plum run' --- plum/cli/main.py | 2 +- plum/service.py | 21 ++++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/plum/cli/main.py b/plum/cli/main.py index 6f3aa9fdc..8dd465556 100644 --- a/plum/cli/main.py +++ b/plum/cli/main.py @@ -93,7 +93,7 @@ class TopLevelCommand(Command): } container = service.create_container(**container_options) stream = container.logs(stream=True) - service.start_container(container) + service.start_container(container, ports=None) for data in stream: if data is None: break diff --git a/plum/service.py b/plum/service.py index bdca97ed8..14e2d8aca 100644 --- a/plum/service.py +++ b/plum/service.py @@ -63,14 +63,21 @@ class Service(object): def start_container(self, container=None, **override_options): if container is None: container = self.create_container(**override_options) + + options = self.options.copy() + options.update(override_options) + port_bindings = {} - for port in self.options.get('ports', []): - port = unicode(port) - if ':' in port: - internal_port, external_port = port.split(':', 1) - port_bindings[int(internal_port)] = int(external_port) - else: - port_bindings[int(port)] = None + + if options.get('ports', None) is not None: + for port in options['ports']: + port = unicode(port) + if ':' in port: + internal_port, external_port = port.split(':', 1) + port_bindings[int(internal_port)] = int(external_port) + else: + port_bindings[int(port)] = None + log.info("Starting %s..." % container.name) container.start( links=self._get_links(),