From 9ef706517a0ee3b460881d99d667fa5ba2829a12 Mon Sep 17 00:00:00 2001 From: Pierre Jaury Date: Wed, 9 Nov 2016 16:49:18 +0100 Subject: [PATCH] Add the Docker client helper --- admin/mailu/dockercli.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 admin/mailu/dockercli.py diff --git a/admin/mailu/dockercli.py b/admin/mailu/dockercli.py new file mode 100644 index 00000000..94f71144 --- /dev/null +++ b/admin/mailu/dockercli.py @@ -0,0 +1,26 @@ +from mailu import app + +import docker +import signal + + +# Connect to the Docker socket +cli = docker.Client(base_url=app.config['DOCKER_SOCKET']) + + +def get(*names): + result = {} + all_containers = cli.containers(all=True) + for brief in all_containers: + if brief['Image'].startswith('mailu/'): + container = cli.inspect_container(brief['Id']) + container['Image'] = cli.inspect_image(container['Image']) + name = container['Config']['Labels']['com.docker.compose.service'] + if not names or name in names: + result[name] = container + return result + + +def reload(*names): + for name, container in get(*names).items(): + cli.kill(container["Id"], signal.SIGHUP.value)