Fix Docker socket permissions for auto-updates
- Detect host Docker socket GID at runtime - Create docker group with matching GID - Add towerops user to docker group - Allows non-root container to access Docker socket for self-updates
This commit is contained in:
parent
c84331db26
commit
f80298a2ce
1 changed files with 14 additions and 0 deletions
|
|
@ -7,5 +7,19 @@ if [ -d /data ]; then
|
||||||
chown -R towerops:towerops /data
|
chown -R towerops:towerops /data
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# If Docker socket is mounted, add towerops user to docker group
|
||||||
|
if [ -S /var/run/docker.sock ]; then
|
||||||
|
# Get the GID of the docker socket
|
||||||
|
DOCKER_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || stat -f '%g' /var/run/docker.sock 2>/dev/null)
|
||||||
|
|
||||||
|
# Create docker group with the same GID as host's docker socket
|
||||||
|
if ! getent group "$DOCKER_GID" >/dev/null 2>&1; then
|
||||||
|
addgroup -g "$DOCKER_GID" docker
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Add towerops user to the docker group
|
||||||
|
addgroup towerops docker 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
|
||||||
# Drop to towerops user and run the agent
|
# Drop to towerops user and run the agent
|
||||||
exec su-exec towerops towerops-agent "$@"
|
exec su-exec towerops towerops-agent "$@"
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue