Conversation
| networks: | ||
| - mining | ||
| restart: unless-stopped | ||
| entrypoint: > |
There was a problem hiding this comment.
Zebra already exposes /ready and /healthy endpoints on port 8080. It might be better to leverage Docker's native health orchestration instead of the curl; similar to how we do in the Z3 stack:
zebra:
healthcheck:
test: ["CMD-SHELL", "curl -sf http://127.0.0.1:8080/healthy || exit 1"]
interval: 30s
timeout: 10s
retries: 3
start_period: 90sThen s-nomp can rely on Docker to handle the wait:
s-nomp:
depends_on:
zebra:
condition: service_healthyI know this is confirming the RPC instead, but the overall goal is similar.
| restart: unless-stopped | ||
| entrypoint: > | ||
| /bin/bash -c ' | ||
| /app/docker-entrypoint.sh true && |
There was a problem hiding this comment.
I think this should be an actual script file (e.g., docker/mining/s-nomp-entrypoint.sh) rather than inline YAML. A script file could be linted, tested, and versioned more cleanly.
|
Nit: This would allow composing capabilities from a single file: # Just Zebra
docker compose up -d
# Zebra + mining pool
docker compose --profile mining up -d
# Zebra + mining pool + CPU miner
docker compose --profile mining --profile miner up -d
# Zebra + observability
docker compose --profile monitoring up -d
# Everything
docker compose --profile mining --profile miner --profile monitoring up -dThis is the pattern used in Z3 for the monitoring stack and avoids duplicating the zebra service definition across multiple compose files. Not blocking for this PR; just flagging the direction in case we'd like to start consolidating the Docker compose |
Motivation
Follow-up Work
PR Checklist