fix: detect Docker socket GID for container permissions
All checks were successful
CI / build (push) Successful in 1m13s
CI / docker (push) Successful in 12s

The Docker socket group varies by host (e.g., GID 1001 on WSL2).
Hardcoding group_add: ["0"] doesn't work when the socket is owned
by a different group. The installer now detects the socket GID at
install time via stat. The main docker-compose.yml uses a
configurable DOCKER_GID env var (defaults to 0).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
hsiegeln
2026-04-13 18:39:20 +02:00
parent 4fe642b91d
commit 8b9045b0e2
3 changed files with 12 additions and 3 deletions

View File

@@ -36,6 +36,9 @@ VENDOR_SEED_ENABLED=false
# VENDOR_USER=vendor # VENDOR_USER=vendor
# VENDOR_PASS=change_me # VENDOR_PASS=change_me
# Docker socket GID (run: stat -c '%g' /var/run/docker.sock)
# DOCKER_GID=0
# Docker images (override for custom registries) # Docker images (override for custom registries)
# TRAEFIK_IMAGE=gitea.siegeln.net/cameleer/cameleer-traefik # TRAEFIK_IMAGE=gitea.siegeln.net/cameleer/cameleer-traefik
# POSTGRES_IMAGE=gitea.siegeln.net/cameleer/cameleer-postgres # POSTGRES_IMAGE=gitea.siegeln.net/cameleer/cameleer-postgres

View File

@@ -138,7 +138,7 @@ services:
- traefik.http.routers.saas.tls=true - traefik.http.routers.saas.tls=true
- traefik.http.services.saas.loadbalancer.server.port=8080 - traefik.http.services.saas.loadbalancer.server.port=8080
group_add: group_add:
- "0" - "${DOCKER_GID:-0}"
networks: networks:
- cameleer - cameleer

View File

@@ -649,6 +649,7 @@ TENANT_ORG_NAME=${TENANT_ORG_NAME:-}
# Docker # Docker
DOCKER_SOCKET=${DOCKER_SOCKET} DOCKER_SOCKET=${DOCKER_SOCKET}
DOCKER_GID=$(stat -c '%g' "${DOCKER_SOCKET}" 2>/dev/null || echo "0")
# Provisioning images # Provisioning images
CAMELEER_SAAS_PROVISIONING_SERVERIMAGE=${REGISTRY}/cameleer3-server:${VERSION} CAMELEER_SAAS_PROVISIONING_SERVERIMAGE=${REGISTRY}/cameleer3-server:${VERSION}
@@ -881,11 +882,16 @@ EOF
echo " - ${MONITORING_NETWORK}" >> "$f" echo " - ${MONITORING_NETWORK}" >> "$f"
fi fi
cat >> "$f" << 'EOF' # Detect Docker socket GID for container access
local docker_gid
docker_gid=$(stat -c '%g' "${DOCKER_SOCKET:-/var/run/docker.sock}" 2>/dev/null || echo "0")
cat >> "$f" << EOF
group_add: group_add:
- "0" - "${docker_gid}"
volumes: volumes:
EOF
cat >> "$f" << 'EOF'
pgdata: pgdata:
chdata: chdata:
certs: certs: