From ad9a5b4e02b49bf11049749349c3bc5a36ff2efc Mon Sep 17 00:00:00 2001 From: David Gwilliam Date: Thu, 2 Jul 2026 23:33:43 -0700 Subject: [PATCH] party-lock: use Docker SDK instead of docker kill CLI The docker binary is not available inside the party-lock container, so switch to the Python Docker SDK via unix socket. --- infra/party-lock/party-lock.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/infra/party-lock/party-lock.py b/infra/party-lock/party-lock.py index 3d65ceb..dfc6f62 100644 --- a/infra/party-lock/party-lock.py +++ b/infra/party-lock/party-lock.py @@ -2,12 +2,15 @@ # /// script # dependencies = [ # "paho-mqtt>=2.0", +# "docker>=7.0", # ] # /// import os import stat +import time +import docker import paho.mqtt.client as mqtt MQTT_HOST = os.environ.get("MQTT_HOST", "mosquitto") @@ -25,7 +28,13 @@ def rebuild_acl(): f.write("\n".join(lines) + "\n") os.chmod(ACL_PATH, stat.S_IRWXU) os.chown(ACL_PATH, 1883, 1883) - os.system("docker kill -s HUP mosquitto 2>/dev/null || true") + try: + dc = docker.DockerClient(base_url="unix://var/run/docker.sock") + mosq = dc.containers.get("mosquitto") + mosq.kill(signal="HUP") + except Exception: + pass + time.sleep(0.05) def on_message(client, userdata, msg): global locked