Files
Jordan Ritter 575360cd54 fix(showcase): install curl in TS runtime stages — watchdog probe was silently exiting rc=127
The multi-stage Docker refactor (#4147) moved TypeScript showcase services
to `node:22-slim` runtime. That base image does NOT include `curl`.

entrypoint.sh's watchdog runs `curl -sS --max-time 5 http://127.0.0.1:8124/ok`
every 5s to probe the liveness endpoint. Without curl the probe exits
rc=127 "command not found" every cycle. After 180s grace + 3x30s strikes
the watchdog kills the agent process. Railway auto-restarts. Kill-loop
forever.

Verified via `railway ssh --service showcase-langgraph-typescript`:

    sh: 1: curl: not found
    rc=127

while `ss -tlnp` on the same container confirmed BOTH 0.0.0.0:8123
(langgraph-api) and 0.0.0.0:8124 (liveness.mjs) LISTEN. The agent
servers were healthy the whole time — the probe tool was missing.

Fix: add `apt-get install -y --no-install-recommends curl` to the
runtime stage of:

  - showcase/starters/template/dockerfiles/Dockerfile.typescript (source)
  - showcase/packages/claude-sdk-typescript/Dockerfile
  - showcase/packages/langgraph-typescript/Dockerfile
  - showcase/packages/mastra/Dockerfile

3 starter Dockerfiles regenerated from the template via
`pnpm -C showcase/scripts generate-starters`.

Python/Java/.NET services already install curl (they need it for
NodeSource or similar) and are unaffected.

Smoke: local `docker build --platform linux/amd64` for both
starter + package variants succeeded; `docker run ... sh -c "which curl"`
prints /usr/bin/curl in both.
2026-04-22 13:33:34 -07:00
..