Bug Fixes
- Prometheus gauge crash in agent mode —
getWatchContainerGauge()returnsundefinedin agent mode since Prometheus is not initialized. Added optional chaining so the.set()call is safely skipped. This was the root cause of containers not being discovered in agent mode. (Fixes #23, #31)
Infrastructure
- su-exec privilege dropping — Entrypoint detects the docker socket GID and drops from root to the
nodeuser viasu-execwhen possible. Stays root only for GID 0 sockets (Docker Desktop / OrbStack). (Refs #25) - tini init system — Added
tinias PID 1 for proper signal forwarding to the Node process. - Graceful shutdown —
SIGINT/SIGTERMhandlers now callprocess.exit()after cleanup so the container actually stops.
Docker image: ghcr.io/codeswhat/drydock:1.0.1 (multi-arch: amd64 + arm64)
docker pull ghcr.io/codeswhat/drydock:1.0.1