Skip to content

Fix Docker socket permission denied in panda init server container#52

Merged
samcm merged 3 commits intomasterfrom
fix/server-docker-socket-permissions
Mar 11, 2026
Merged

Fix Docker socket permission denied in panda init server container#52
samcm merged 3 commits intomasterfrom
fix/server-docker-socket-permissions

Conversation

@samcm
Copy link
Member

@samcm samcm commented Mar 11, 2026

Summary

  • The published server image (goreleaser.server.Dockerfile) runs as USER panda (UID 1000) with no Docker CLI installed and no docker group membership — mounting the Docker socket always fails with permission denied
  • Added docker-cli to the server image so the sandbox backend can talk to Docker
  • panda init now detects the host Docker socket GID and injects it via group_add in the generated compose file
  • Added a CI smoke test that builds the server image and verifies Docker socket access from inside the container

samcm added 3 commits March 11, 2026 19:55
The published server image (goreleaser.server.Dockerfile) runs as USER
panda (UID 1000) with no Docker CLI and no docker group, so mounting
the Docker socket always fails with permission denied.

- Install docker-cli in the server image
- Detect the host Docker socket GID during panda init and inject it
  via group_add in the generated compose file
- Add CI smoke test that builds the server image and verifies Docker
  socket access from inside the container
…test

- Replace ubuntu-latest with self-hosted-ghr runners across all workflows
- Use size-l-x64 for goreleaser/release builds, size-m-x64 for everything else
- Upgrade smoke test to verify actual server sandbox initialization
  (Docker access, image pull, network creation) instead of just docker info
@samcm samcm merged commit 2fc136d into master Mar 11, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant