Don't initialize networks that aren't used by any services.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
This commit is contained in:
parent
0c87e0b18f
commit
3e8a4a5dc3
5 changed files with 31 additions and 18 deletions
|
|
@ -693,7 +693,7 @@ def run_one_off_container(container_options, project, service, options):
|
|||
start_deps=True,
|
||||
strategy=ConvergenceStrategy.never)
|
||||
|
||||
project.initialize_networks()
|
||||
project.initialize()
|
||||
|
||||
container = service.create_container(
|
||||
quiet=True,
|
||||
|
|
|
|||
|
|
@ -133,12 +133,17 @@ class ProjectNetworks(object):
|
|||
|
||||
@classmethod
|
||||
def from_services(cls, services, networks, use_networking):
|
||||
networks = {
|
||||
network: networks[network]
|
||||
service_networks = {
|
||||
network: networks.get(network)
|
||||
for service in services
|
||||
for network in service.get('networks', ['default'])
|
||||
}
|
||||
return cls(networks, use_networking)
|
||||
unused = set(networks) - set(service_networks) - {'default'}
|
||||
if unused:
|
||||
log.warn(
|
||||
"Some networks were defined but are not used by any service: "
|
||||
"{}".format(", ".join(unused)))
|
||||
return cls(service_networks, use_networking)
|
||||
|
||||
def remove(self):
|
||||
if not self.use_networking:
|
||||
|
|
|
|||
|
|
@ -351,13 +351,12 @@ class Project(object):
|
|||
timeout=DEFAULT_TIMEOUT,
|
||||
detached=False):
|
||||
|
||||
services = self.get_services_without_duplicate(service_names, include_deps=start_deps)
|
||||
self.initialize()
|
||||
services = self.get_services_without_duplicate(
|
||||
service_names,
|
||||
include_deps=start_deps)
|
||||
|
||||
plans = self._get_convergence_plans(services, strategy)
|
||||
|
||||
self.networks.initialize()
|
||||
self.initialize_volumes()
|
||||
|
||||
return [
|
||||
container
|
||||
for service in services
|
||||
|
|
@ -369,6 +368,10 @@ class Project(object):
|
|||
)
|
||||
]
|
||||
|
||||
def initialize(self):
|
||||
self.networks.initialize()
|
||||
self.initialize_volumes()
|
||||
|
||||
def _get_convergence_plans(self, services, strategy):
|
||||
plans = {}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue