Add the Docker client helper
parent
9e0718b00f
commit
9ef706517a
@ -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)
|
Loading…
Reference in New Issue