nomos declared `depends_on: api: condition: service_started`, which only waits for the container to exist. It came up while the API was still binding :8090, failed its MCP initialize with "connection refused", exited 1, and crash-looped for ~25 seconds on every single deploy. It always recovered on its own, which is precisely why it went unnoticed. service_healthy waits for the API to answer, so this needs api to declare a healthcheck — wget is BusyBox's, already present in the alpine runtime image, so nothing new is installed. /healthz pings the database, so "healthy" means genuinely able to serve rather than merely listening. Co-Authored-By: Claude <noreply@anthropic.com>
8.0 KiB
8.0 KiB