Skip to content

test-stack-up: local lane without containers; runtime-agnostic container calls (refs #525) - #568

Merged
MendixMau merged 3 commits into
masterfrom
feat/container-runtime-agnostic
Oct 26, 2026
Merged

MendixMau merged 3 commits into
masterfrom
feat/container-runtime-agnostic

Conversation

@MendixMau

Copy link
Copy Markdown
Owner

What

  • Local lane: when no container runtime answers (or --local / MXTK_APP_LANE=local), a down app starts with mxcli run --local --watch --detach. Each project gets a free mxbuild serve port (6543–6599; mxcli fixes 6543). Restarts use the project's APP_PORTS when the run-local handshake is gone. The split-model unit count is compared before and after the start and warns if it drops.
  • Runtime-agnostic: every direct docker ps/inspect/exec goes through MXCLI_CONTAINER_CLI, else docker (Desktop, colima, OrbStack), else podman.
  • mendix_at: a themed index.html with no Mendix words was read as "not serving". /mxclientsystem/mxui/mxui.js returning 200 is now the fallback marker. This failed on master too.
  • check-requirements: a missing container runtime is a note, not a missing requirement.

Field test (macOS, Docker Desktop removed, colima running)

  • Cold start on the local lane: 76 s, then 43 s. Ownership verified, serve port 6544, model unchanged.
  • Five apps served side by side (8085–8088, 8100); each returned 200 on mxui.js.
  • A project already up reports READY via --check.

🤖 Generated with Claude Code

MendixMau and others added 3 commits October 23, 2026 12:53
…container calls (refs #525)

- test-stack-up.sh: a down app starts with mxcli run --local --watch --detach when no container
  runtime answers (or --local / MXTK_APP_LANE=local); a free mxbuild serve port per project
  (6543 is fixed in mxcli); restarts use the project's APP_PORTS when the handshake is gone;
  the split-model unit count is compared before and after.
- Every direct container call goes through MXCLI_CONTAINER_CLI, else docker (Desktop, colima,
  OrbStack), else podman.
- mendix_at: a themed index.html with no Mendix words was read as 'not serving'; the runtime's
  /mxclientsystem/mxui/mxui.js is the fallback marker.
- check-requirements.sh: a missing container runtime is a note, not a missing requirement.

Field test (macOS, colima, Docker Desktop removed): cold start on the local lane 43-76 s,
ownership verified, five apps served side by side, model unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… the local lane (PR #568 review)

- mendix_at's mxui.js fallback accepted any 200, so an SPA catch-all (Express/Vite answering
  index.html on every path) read as Mendix — the false green the function exists to prevent.
  New mxui_js_at(): 200, a JavaScript content type, and a body that does not open with `<`.
- Local lane with no mxcli now says "no mxcli found" and how to fix it, not "no Docker/Podman".
- Fixtures T17 (SPA negative + themed-index positive), T18 (--local with a stubbed mxcli:
  --serve-port passed, app proven by its run-local handshake), T19 (--local, no mxcli).
  T17 and T19 fail on 0980966; all pass now (66/66).
- Usage header line, app-restart.sh mendix_at comment, CHANGELOG bullet and credit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013jQvaonym9V1wKKfAEPmRr
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