Fix Podman socket for rootless setup on Raspberry Pi

start.sh now activates the Podman user socket via systemctl --user if it
isn't running yet, then exports DOCKER_HOST and PODMAN_SOCK so that
podman compose (which delegates to the docker-compose plugin) can connect.

docker-compose.yml mounts ${PODMAN_SOCK} into the socat proxy container
at a fixed internal path (/podman.sock), so it works for both rootful
(/run/podman/podman.sock) and rootless (/run/user/<UID>/podman/podman.sock)
without hardcoding the UID.

https://claude.ai/code/session_01FKCW3FDjNFj6jve4niMFXH
This commit is contained in:
Claude 2026-03-21 18:08:10 +00:00
parent dd107aacdb
commit 06ababa7c6
No known key found for this signature in database
2 changed files with 15 additions and 4 deletions

View file

@ -7,14 +7,16 @@
services: services:
# ── Podman socket proxy (unix → TCP) ────────────────────────────────────── # ── Podman socket proxy (unix → TCP) ──────────────────────────────────────
# Rootful Podman socket: /run/podman/podman.sock # start.sh exports PODMAN_SOCK before invoking compose, so the correct
# Rootless Podman socket: /run/user/<UID>/podman/podman.sock # socket is used regardless of rootful vs rootless:
# rootful: /run/podman/podman.sock
# rootless: /run/user/<UID>/podman/podman.sock (start.sh sets this)
podman-proxy: podman-proxy:
image: alpine/socat image: alpine/socat
command: tcp-listen:2375,fork,reuseaddr unix-connect:/run/podman/podman.sock command: tcp-listen:2375,fork,reuseaddr unix-connect:/podman.sock
restart: unless-stopped restart: unless-stopped
volumes: volumes:
- /run/podman/podman.sock:/run/podman/podman.sock - ${PODMAN_SOCK}:/podman.sock
networks: networks:
- hiy-net - hiy-net

View file

@ -59,6 +59,15 @@ EOF
echo "[hiy] Generated proxy/caddy.json for ${DOMAIN_SUFFIX}" echo "[hiy] Generated proxy/caddy.json for ${DOMAIN_SUFFIX}"
# ── Ensure Podman socket is active ────────────────────────────────────────────
PODMAN_SOCK="/run/user/$(id -u)/podman/podman.sock"
if [ ! -S "$PODMAN_SOCK" ]; then
echo "[hiy] Starting Podman socket…"
systemctl --user start podman.socket
fi
export PODMAN_SOCK
export DOCKER_HOST="unix://${PODMAN_SOCK}"
# ── Build images ─────────────────────────────────────────────────────────────── # ── Build images ───────────────────────────────────────────────────────────────
make build make build