mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-10 10:35:51 +00:00
e734bd0097
The installer's discover_rootless_container_runtime only globbed /run/user/* sockets and never consulted the system Docker daemon, so a socket-activated rootless Podman API socket (alive only for root's login session on Debian/OMV) won discovery over a healthy rootful Docker and pinned PULSE_DOCKER_RUNTIME=podman plus CONTAINER_HOST/PODMAN_HOST/ XDG_RUNTIME_DIR into the agent unit. The env-application block also ran for explicit --enable-docker installs. Rootless discovery now defers to system_docker_runtime_is_active (docker info with DOCKER_HOST stripped, or a live /var/run/docker.sock probe) before touching rootless sockets. On the agent, detectRuntime short-circuited to podman whenever the preference said podman, mislabeling connections that actually fell through to the Docker socket and disabling Swarm collection. The preference is now an ordering hint: a podman-preferred connection landing on a docker endpoint reports docker, while unlabeled endpoints with no runtime signals still honor the pin. When the bound socket disappears mid-run the agent re-runs runtime discovery after three consecutive daemon-unavailable collects, swapping the connection behind a swappableDockerClient so concurrent goroutines keep a stable handle. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>