Skip to content

fix(doctor, test-stack-up): no Docker daemon in a cloud container is normal, not a warning - #180

Merged
MendixMau merged 1 commit into
masterfrom
fix/doctor-cloud-no-docker
Sep 30, 2026
Merged

MendixMau merged 1 commit into
masterfrom
fix/doctor-cloud-no-docker

Conversation

@MendixMau

Copy link
Copy Markdown
Owner

What changed and why (one paragraph)

The Claude Code on the web container ships the docker CLI but no running daemon, and the agent cannot start one. bin/doctor.sh (run at scaffold and session start) warned "docker daemon is not responding … sudo systemctl start docker", and its no-runtime text said the build check needs Docker. So sessions tried to start Docker, failed, and reported "cannot start the docker daemon" as a blocker, until the user told them to use mxcli run --local. That contradicted skills/cloud-dev-environment.md, which already says no Docker is needed. Now: in the cloud lane a missing daemon is an ok line saying it is normal, not to start it, the build check is exec.sh's mxbuild gate, and the app runs with ./mxcli run --local (snapshot first). Desktop lanes (Docker or Podman, stopped) keep the WARN and start hint, plus one line that a container is optional. The no-runtime text no longer claims the build check needs Docker. project-bin/test-stack-up.sh, with the app down and no reachable Docker/Podman (bounded probe), stops with the Docker-free route (Studio Pro Run Locally, or ./mxcli run --local) instead of failing inside mxcli docker run.

Field evidence

Run in a real cloud container (docker CLI present, no daemon), same doctor, four combinations:

Lane / runtime Before After
cloud, docker, no daemon WARN + sudo systemctl start docker ok: "no docker daemon in this cloud container — normal here, and not a blocker. Do not try to start it." + mxbuild gate + mxcli run --local
desktop-like lane, docker stopped WARN + start hint unchanged, plus "Not required, if you would rather not run one: …"
desktop-like lane, podman only, stopped WARN + podman start hint unchanged, plus the same optional line
cloud, podman only WARN + podman hint ok, same cloud text

test-stack-up.sh on a scratch project with the app down and no daemon: stops with "App down and no Docker/Podman reachable …" and the ./mxcli run --local -p <App>.mpr line; mxcli docker run is never called.

Checklist

  • No client data (leak guard + denylist grep clean)
  • Size cap
  • Test tier: tests/wave2/test-doctor-docker-probe.sh updated (desktop cases pin CLAUDE_CODE_REMOTE= so the fixture means the same inside a cloud session; new case 2b asserts the cloud behaviour); its greps replicated by hand against the new doctor output
  • Instrument rules: rule 7 in spirit, the report no longer sends the agent at an action it cannot take
  • Routing row: n/a
  • CHANGELOG line
  • Bug entries: n/a

🤖 Generated with Claude Code

https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw


Generated by Claude Code

…normal, not a warning

The cloud container ships the docker CLI with no daemon and the agent cannot
start one. Doctor warned and printed 'sudo systemctl start docker', so sessions
tried, failed and reported it as a blocker, while the mxbuild gate and
mxcli run --local need no Docker. The cloud lane now says so and names the
Docker-free route. Desktop lanes keep the warning plus a line that a container
is optional. test-stack-up.sh names the same route instead of failing inside
mxcli docker run.

Field run: this cloud container (docker CLI, no daemon), plus desktop-lane,
podman-only and podman-in-cloud variants.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
@MendixMau
MendixMau merged commit 0298e9e into master Sep 30, 2026
1 check 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.

2 participants