Skip to content

chore(sandbox): remove Docker daemon from image#14

Open
mreuvekamp wants to merge 1 commit intofeat/sandbox-maven-mcp-agentfrom
chore/sandbox-remove-docker
Open

chore(sandbox): remove Docker daemon from image#14
mreuvekamp wants to merge 1 commit intofeat/sandbox-maven-mcp-agentfrom
chore/sandbox-remove-docker

Conversation

@mreuvekamp
Copy link
Copy Markdown
Collaborator

Stacked op #13 (feat/sandbox-maven-mcp-agent). Mergen pas na #13; rebase naar main gebeurt automatisch zodra #13 mergt.

Summary

  • Verwijdert de rootless Docker daemon en alle bijbehorende infrastructuur uit de sandbox-image. Met de host-side Maven MCP-agent uit feat(sandbox): add host-side Maven MCP agent #13 is een interne daemon overbodig — Testcontainers en mvn praten via host.docker.internal:7777 met de host-Docker.
  • Image-grootte daalt aanzienlijk (geen docker-ce/containerd/buildx in de image), privileged: true is niet meer nodig voor de standaard-flow → kleinere aanvalsoppervlakte.
  • 240 regels weg, 10 erbij; geen ondersteunende auto-update workflow meer voor pinned Docker apt-versies.

Wijzigingen per bestand

Bestand Wijziging
Dockerfile ARG INSTALL_DOCKER weg; install-docker-blok weg; alle Docker ENV-vars (XDG_RUNTIME_DIR, DOCKER_HOST, DOCKERD_ROOTLESS_ROOTLESSKIT_FLAGS, TESTCONTAINERS_HOST_OVERRIDE) weg
compose.yml INSTALL_DOCKER build-arg en privileged: regel weg. cap_add: [NET_ADMIN, NET_RAW] blijft voor de firewall
entrypoint.sh dockerd-rootless-startblok met crash-detect en socket-poll weg
.env.sample INSTALL_DOCKER variabele weg
install-docker.sh Verwijderd
README.md INSTALL_DOCKER-rij uit toggles-tabel; privileged-notitie weg; Dependency-onderhoud refereert niet meer aan Docker apt-pakketten; Maven MCP-sectie herschreven (image heeft geen Docker daemon meer)
.github/workflows/check-upstream.yml docker-apt job (~85 regels) verwijderd — er is geen install-docker.sh meer om versies in te pinnen

Wat bewust gebleven is

  • cap_add: [NET_ADMIN, NET_RAW] — nodig voor iptables/ipset in de firewall, niet voor Docker
  • docker compose ... voorbeelden in de README — die slaan op de host-Docker (compose runtime), niet op Docker-in-de-image
  • Comment in init-firewall.sh over 127.0.0.11 Docker DNS — dat is Docker's bridge-DNS van de host, blijft relevant
  • .claude/settings.local.json permissies voor Bash(docker compose *) — host-CLI, blijft

Test plan

  • docker compose up --build met default .env.sample (INSTALL_DOCKER variabele weg) — image bouwt en container start zonder de privileged flag
  • docker compose exec claude bash -lc 'command -v dockerd-rootless.sh || echo MISSING'MISSING
  • docker compose exec claude bash -lc 'env | grep -E "^(DOCKER_HOST|XDG_RUNTIME_DIR|DOCKERD_ROOTLESS|TESTCONTAINERS_HOST)"' → leeg
  • Image-grootte vergelijken voor/na (docker images claude-sandbox)
  • Firewall werkt nog (entrypoint.sh draait init-firewall.sh succesvol — cap_add: NET_ADMIN/NET_RAW is voldoende, geen privileged nodig)
  • Maven MCP-flow uit feat(sandbox): add host-side Maven MCP agent #13 nog werkend met deze cleanup (host-agent + claude mcp addrun_maven)
  • .github/workflows/check-upstream.yml parseert nog (geen syntax errors door verwijderde job)

🤖 Generated with Claude Code

Verwijdert de rootless Docker daemon en alle bijbehorende build- en runtime-
infrastructuur uit de sandbox-image. De host-side Maven MCP-agent (PR #13)
levert de Docker-functionaliteit nu via host.docker.internal, dus een aparte
daemon in de container is niet meer nodig.

Wijzigingen:
- Dockerfile: ARG INSTALL_DOCKER, het hele install-docker-blok en de
  rootless ENV-vars (XDG_RUNTIME_DIR, DOCKER_HOST,
  DOCKERD_ROOTLESS_ROOTLESSKIT_FLAGS, TESTCONTAINERS_HOST_OVERRIDE) weg.
- compose.yml: INSTALL_DOCKER build-arg en de privileged-flag weg. cap_add
  blijft (NET_ADMIN/NET_RAW nodig voor de firewall).
- entrypoint.sh: dockerd-rootless-startblok met crash-detect en socket-
  poll weg.
- .env.sample: INSTALL_DOCKER variabele weg.
- install-docker.sh: verwijderd.
- README.md: INSTALL_DOCKER-rij + privileged-notitie uit toggles-tabel;
  Dependency-onderhoud refereert niet meer aan Docker apt-pakketten;
  Maven MCP-sectie aangepast (de image heeft geen Docker daemon meer,
  dus testcontainers via host.docker.internal i.p.v. nested Docker).
- .github/workflows/check-upstream.yml: 'docker-apt' job verwijderd
  (~85 regels) — er is geen install-docker.sh meer om versies in te
  pinnen.

Image-grootte daalt aanzienlijk en de privileged-modus is niet meer nodig
voor de standaard-flow, wat de aanvalsoppervlakte verkleint.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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