mirror of
https://github.com/docker/compose.git
synced 2025-07-21 12:44:54 +02:00
Merge pull request #2746 from aanand/alias-containers-by-short-id
Alias containers by short id
This commit is contained in:
commit
af6b18cad8
@ -430,12 +430,16 @@ class Service(object):
|
|||||||
return container
|
return container
|
||||||
|
|
||||||
def connect_container_to_networks(self, container):
|
def connect_container_to_networks(self, container):
|
||||||
one_off = (container.labels.get(LABEL_ONE_OFF) == "True")
|
connected_networks = container.get('NetworkSettings.Networks')
|
||||||
|
|
||||||
for network in self.networks:
|
for network in self.networks:
|
||||||
|
if network in connected_networks:
|
||||||
|
self.client.disconnect_container_from_network(
|
||||||
|
container.id, network)
|
||||||
|
|
||||||
self.client.connect_container_to_network(
|
self.client.connect_container_to_network(
|
||||||
container.id, network,
|
container.id, network,
|
||||||
aliases=self._get_aliases(one_off=one_off),
|
aliases=self._get_aliases(container),
|
||||||
links=self._get_links(False),
|
links=self._get_links(False),
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -507,11 +511,11 @@ class Service(object):
|
|||||||
numbers = [c.number for c in containers]
|
numbers = [c.number for c in containers]
|
||||||
return 1 if not numbers else max(numbers) + 1
|
return 1 if not numbers else max(numbers) + 1
|
||||||
|
|
||||||
def _get_aliases(self, one_off):
|
def _get_aliases(self, container):
|
||||||
if one_off:
|
if container.labels.get(LABEL_ONE_OFF) == "True":
|
||||||
return []
|
return []
|
||||||
|
|
||||||
return [self.name]
|
return [self.name, container.short_id]
|
||||||
|
|
||||||
def _get_links(self, link_to_self):
|
def _get_links(self, link_to_self):
|
||||||
links = {}
|
links = {}
|
||||||
@ -618,9 +622,6 @@ class Service(object):
|
|||||||
override_options,
|
override_options,
|
||||||
one_off=one_off)
|
one_off=one_off)
|
||||||
|
|
||||||
container_options['networking_config'] = self._get_container_networking_config(
|
|
||||||
one_off=one_off)
|
|
||||||
|
|
||||||
return container_options
|
return container_options
|
||||||
|
|
||||||
def _get_container_host_config(self, override_options, one_off=False):
|
def _get_container_host_config(self, override_options, one_off=False):
|
||||||
@ -655,20 +656,6 @@ class Service(object):
|
|||||||
cpu_quota=options.get('cpu_quota'),
|
cpu_quota=options.get('cpu_quota'),
|
||||||
)
|
)
|
||||||
|
|
||||||
def _get_container_networking_config(self, one_off=False):
|
|
||||||
if self.net.mode in ['host', 'bridge']:
|
|
||||||
return None
|
|
||||||
|
|
||||||
if self.net.mode not in self.networks:
|
|
||||||
return None
|
|
||||||
|
|
||||||
return self.client.create_networking_config({
|
|
||||||
self.net.mode: self.client.create_endpoint_config(
|
|
||||||
aliases=self._get_aliases(one_off=one_off),
|
|
||||||
links=self._get_links(False),
|
|
||||||
)
|
|
||||||
})
|
|
||||||
|
|
||||||
def build(self, no_cache=False, pull=False, force_rm=False):
|
def build(self, no_cache=False, pull=False, force_rm=False):
|
||||||
log.info('Building %s' % self.name)
|
log.info('Building %s' % self.name)
|
||||||
|
|
||||||
|
@ -420,8 +420,12 @@ class CLITestCase(DockerClientTestCase):
|
|||||||
container = containers[0]
|
container = containers[0]
|
||||||
self.assertIn(container.id, network['Containers'])
|
self.assertIn(container.id, network['Containers'])
|
||||||
|
|
||||||
networks = list(container.get('NetworkSettings.Networks'))
|
networks = container.get('NetworkSettings.Networks')
|
||||||
self.assertEqual(networks, [network['Name']])
|
self.assertEqual(list(networks), [network['Name']])
|
||||||
|
|
||||||
|
self.assertEqual(
|
||||||
|
sorted(networks[network['Name']]['Aliases']),
|
||||||
|
sorted([service.name, container.short_id]))
|
||||||
|
|
||||||
for service in services:
|
for service in services:
|
||||||
assert self.lookup(container, service.name)
|
assert self.lookup(container, service.name)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user