mirror of
https://github.com/docker/compose.git
synced 2025-07-30 09:04:12 +02:00
Create links when creating containers
This commit is contained in:
parent
f0768d4dca
commit
9a81623581
@ -34,7 +34,10 @@ class Service(object):
|
|||||||
number = self.next_container_number()
|
number = self.next_container_number()
|
||||||
name = make_name(self.name, number)
|
name = make_name(self.name, number)
|
||||||
container = self.client.create_container(self.image, self.command, name=name)
|
container = self.client.create_container(self.image, self.command, name=name)
|
||||||
self.client.start(container['Id'])
|
self.client.start(
|
||||||
|
container['Id'],
|
||||||
|
links=self._get_links(),
|
||||||
|
)
|
||||||
|
|
||||||
def stop_container(self):
|
def stop_container(self):
|
||||||
self.client.kill(self.containers[0]['Id'])
|
self.client.kill(self.containers[0]['Id'])
|
||||||
@ -47,6 +50,20 @@ class Service(object):
|
|||||||
else:
|
else:
|
||||||
return max(numbers) + 1
|
return max(numbers) + 1
|
||||||
|
|
||||||
|
def get_names(self):
|
||||||
|
return [get_container_name(c) for c in self.containers]
|
||||||
|
|
||||||
|
def inspect(self):
|
||||||
|
return [self.client.inspect_container(c['Id']) for c in self.containers]
|
||||||
|
|
||||||
|
def _get_links(self):
|
||||||
|
links = {}
|
||||||
|
for service in self.links:
|
||||||
|
for name in service.get_names():
|
||||||
|
links[name] = name
|
||||||
|
return links
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def make_name(prefix, number):
|
def make_name(prefix, number):
|
||||||
return '%s_%s' % (prefix, number)
|
return '%s_%s' % (prefix, number)
|
||||||
|
@ -59,3 +59,4 @@ class ServiceCollectionTest(ServiceTestCase):
|
|||||||
self.assertEqual(len(collection[1].containers), 0)
|
self.assertEqual(len(collection[1].containers), 0)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -65,3 +65,16 @@ class ScalingTestCase(ServiceTestCase):
|
|||||||
|
|
||||||
self.service.stop()
|
self.service.stop()
|
||||||
self.assertEqual(len(self.service.containers), 0)
|
self.assertEqual(len(self.service.containers), 0)
|
||||||
|
|
||||||
|
|
||||||
|
class LinksTestCase(ServiceTestCase):
|
||||||
|
def test_links_are_created_when_starting(self):
|
||||||
|
db = self.create_service('db')
|
||||||
|
web = self.create_service('web', links=[db])
|
||||||
|
db.start()
|
||||||
|
web.start()
|
||||||
|
self.assertIn('/web_1/db_1', db.containers[0]['Names'])
|
||||||
|
db.stop()
|
||||||
|
web.stop()
|
||||||
|
|
||||||
|
|
||||||
|
@ -18,12 +18,13 @@ class ServiceTestCase(TestCase):
|
|||||||
self.client.kill(c['Id'])
|
self.client.kill(c['Id'])
|
||||||
self.client.remove_container(c['Id'])
|
self.client.remove_container(c['Id'])
|
||||||
|
|
||||||
def create_service(self, name):
|
def create_service(self, name, **kwargs):
|
||||||
return Service(
|
return Service(
|
||||||
name=name,
|
name=name,
|
||||||
client=self.client,
|
client=self.client,
|
||||||
image="ubuntu",
|
image="ubuntu",
|
||||||
command=["/bin/sleep", "300"],
|
command=["/bin/sleep", "300"],
|
||||||
|
**kwargs
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user