fix(mempool): health-check 127.0.0.1 not localhost (stops false-unhealthy loop)

The archy-mempool-web health_check endpoint used http://localhost:8080.
Inside the frontend image, wget resolves `localhost` to ::1 (IPv6) first,
but nginx binds 0.0.0.0:8080 (IPv4) only -> the baked HealthCmd gets
"connection refused" every probe -> container is perpetually unhealthy ->
the reconciler recreates it forever (observed on .228: mempool container
re-Started every ~3 min, Health=unhealthy). Proven live: in-container
`wget http://localhost:8080/` = refused, `wget http://127.0.0.1:8080/` = OK.

Pin the probe to 127.0.0.1 so it matches nginx's IPv4 bind. Updated both
the source manifest and the embedded copy in releases/app-catalog.json
(the catalog overlay wins over the disk manifest on fleet nodes, so the
catalog copy is the one that actually reaches .228).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
archipelago 2026-06-28 15:09:34 -04:00
parent 83344b9f3a
commit d7c6f8c348
2 changed files with 5 additions and 2 deletions

View File

@ -33,7 +33,10 @@ app:
health_check:
type: http
endpoint: http://localhost:8080
# 127.0.0.1 not localhost: the image's wget resolves localhost to ::1 (IPv6)
# first, but nginx binds 0.0.0.0:8080 (IPv4) only -> localhost probe gets
# "connection refused" -> perpetual unhealthy -> health_monitor restart loop.
endpoint: http://127.0.0.1:8080
path: /
interval: 30s
timeout: 5s

View File

@ -235,7 +235,7 @@
],
"health_check": {
"type": "http",
"endpoint": "http://localhost:8080",
"endpoint": "http://127.0.0.1:8080",
"path": "/",
"interval": "30s",
"timeout": "5s",