You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
740 B
Python
27 lines
740 B
Python
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)
|