From c7de1e636474ceb18130b0c7c0dc76b1dd4f41cc Mon Sep 17 00:00:00 2001 From: kisfenyo Date: Sat, 18 Jul 2026 22:55:40 +0200 Subject: [PATCH] adventurelog: fix lying frontend healthcheck (wget in a distroless image) The frontend healthcheck ran 'wget --spider', but the image is distroless: no shell, no wget, no curl, and node itself is only reachable at an absolute path (/nodejs/bin/node, off PATH). The probe therefore ENOENT'd on every run, the container stayed permanently unhealthy, and Traefik -- which will not route to an unhealthy container -- returned 404 to the customer even though the app was serving 200 on :3000 the whole time. Replaced with the Node-exec family using the absolute interpreter path. Live-verified on the demo box. Campaign 7 catalog sweep. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01Nn3VgQk9iwEGgyx6QJ2NvE --- templates/adventurelog/docker-compose.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/templates/adventurelog/docker-compose.yml b/templates/adventurelog/docker-compose.yml index 74587dc..b3f20cb 100644 --- a/templates/adventurelog/docker-compose.yml +++ b/templates/adventurelog/docker-compose.yml @@ -88,7 +88,11 @@ services: limits: memory: 256M healthcheck: - test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:3000"] + # A frontend image distroless: nincs benne shell, wget vagy curl — a node + # bináris is csak abszolút úton érhető el (nem a PATH-on). A korábbi wget + # próba ezért soha nem futott le, a konténer véglegesen unhealthy lett, és + # a Traefik nem irányított rá forgalmat (404 az ügyfélnek). + test: ["CMD", "/nodejs/bin/node", "-e", "fetch('http://127.0.0.1:3000').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"] interval: 10s timeout: 5s retries: 5