From 91f98237bcf23743556a3d7e123004b96751cd81 Mon Sep 17 00:00:00 2001 From: Sebastian Mendel Date: Thu, 13 Aug 2026 10:26:26 +0200 Subject: [PATCH] feat(docker): HEALTHCHECK against /info MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ops finding from the 2026-W33 maintenance QA (NRT-4584): the container reports no health state, so 'healthy' cannot be asserted machine-side after deploys — reviewers fell back to uptime+restart-count. Alpine base ships busybox wget; /info is unauthenticated and proves the HTTP stack is up. Signed-off-by: Sebastian Mendel --- Dockerfile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Dockerfile b/Dockerfile index 9f6ede9..c1823ff 100644 --- a/Dockerfile +++ b/Dockerfile @@ -38,4 +38,11 @@ COPY --from=binary-selector /usr/bin/raybeam /bin/raybeam # CMD (not ENTRYPOINT) preserves the override semantics the previous # Dockerfile shipped with — `docker run sh` runs a shell, not # `raybeam sh`. Users relying on CMD-override behavior keep working. +# The serve port is not EXPOSEd/configured here; deployments pass it via the +# serve flags. 8080 is the documented default and what every known deployment +# uses (traefik server.port label). Probe /info: cheap, unauthenticated, and +# proves the HTTP stack + config load, not just the process. +HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ + CMD wget -q -O /dev/null http://127.0.0.1:8080/info || exit 1 + CMD ["/bin/raybeam"]