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>
48 lines
1.0 KiB
YAML
48 lines
1.0 KiB
YAML
app:
|
|
id: archy-mempool-web
|
|
name: Mempool Web
|
|
version: 3.0.1
|
|
description: Frontend web UI for mempool explorer.
|
|
container_name: mempool
|
|
|
|
container:
|
|
image: 146.59.87.168:3000/lfg2025/mempool-frontend:v3.0.1
|
|
pull_policy: if-not-present
|
|
network: archy-net
|
|
|
|
dependencies:
|
|
- app_id: mempool-api
|
|
version: ">=3.0.0"
|
|
|
|
resources:
|
|
memory_limit: 512Mi
|
|
|
|
security:
|
|
capabilities: []
|
|
readonly_root: false
|
|
network_policy: isolated
|
|
|
|
ports:
|
|
- host: 4080
|
|
container: 8080
|
|
protocol: tcp
|
|
|
|
environment:
|
|
- FRONTEND_HTTP_PORT=8080
|
|
- BACKEND_MAINNET_HTTP_HOST=mempool-api
|
|
|
|
health_check:
|
|
type: http
|
|
# 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
|
|
retries: 3
|
|
|
|
bitcoin_integration:
|
|
rpc_access: none
|
|
sync_required: false
|