SIGN IN SIGN UP

fix: replace wget healthcheck with bash /dev/tcp for cliproxyapi container (#223)

## Problem

The \`cliproxyapi\` container (\`eceasy/cli-proxy-api\`) health check in
both
\`docker-compose.local.yml\` and \`infrastructure/docker-compose.yml\`
used \`wget\`:

\`\`\`yaml
test: ["CMD", "wget", "--no-verbose", "--tries=1", "-O", "/dev/null",
"http://localhost:8317/"]
\`\`\`

This causes the container to stay permanently \`unhealthy\`, which
blocks the
dashboard from starting (it depends on \`cliproxyapi:
service_healthy\`).

The error in \`docker inspect\`:
\`\`\`
OCI runtime exec failed: exec failed: unable to start container process:
exec: "wget": executable file not found in $PATH
\`\`\`

## Root cause

The upstream image switched base OS from **Alpine Linux** to **Debian
Bookworm**
at **v7.1.51** (published June 8, 2026). Alpine ships \`wget\` as part
of BusyBox;
Debian does not. The Dockerfile only installs \`tzdata\` and
\`ca-certificates\` —
\`wget\` was never explicitly added and was always just a free bystander
on Alpine.

Confirmed by inspecting image history across versions:

| Version | Date | Base OS | wget? |
|---|---|---|---|
| ≤ v7.1.50 | Jun 6 2026 | Alpine 3.23 | ✅ via BusyBox |
| v7.1.51 | Jun 8 2026 | Debian Bookworm | ❌ |
| v7.1.53 – latest (v7.2.22) | Jun 8–20 2026 | Debian Bookworm | ❌ |

## Fix

Replace the \`wget\` probe with a \`bash /dev/tcp\` TCP connection
check, which
requires no external tools and works on both Alpine and Debian:

\`\`\`yaml
test: ["CMD", "bash", "-c", "echo > /dev/tcp/localhost/8317"]
\`\`\`

Applied to both \`docker-compose.local.yml\` and
\`infrastructure/docker-compose.yml\`.
S
stephas committed
3cf863480313ff8fce44ea9d64c817418dd5ec33
Parent: a6454e9
Committed by GitHub <noreply@github.com> on 6/21/2026, 11:46:16 AM