Fixed
- Docker socket permission denied on first run: The image runs as a non-root
user (UID/GID 1000), but the host'sdockergroup GID is almost never 1000
(typically 999 on Debian/Ubuntu, varies on other distros), so mounting
/var/run/docker.sockfailed withpermission deniedout of the box.
Added a small entrypoint script (docker/entrypoint.sh) that detects the
socket's GID at runtime, adds thednsweaveruser to a group with that GID,
then drops privileges viasu-execbefore exec'ing the binary. The standard
compose example now works withoutgroup_add. K8s-only deployments and
socket-proxy setups skip the logic entirely (no socket mounted = no-op).
Closes #79.
Changed
- Runtime image now includes
su-exec(~20KB) for the entrypoint privilege
drop. Container briefly starts as root to perform GID detection, then exec's
the binary as the unprivilegeddnsweaveruser.
Docker Images
docker pull ghcr.io/maxfield-allison/dnsweaver:v1.1.4
docker pull docker.io/maxamill/dnsweaver:v1.1.4