Configure zero-downtime deploy health checks in Dokku
domain: dokku.com · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
By default Dokku waits 10 seconds after starting each new container before assuming it's healthy and switching traffic
Define precise checks per process type via the healthchecks.web array in app.json, e.g. {"type": "startup", "path": "/health/ready", "attempts": 3}
Tune the old-container grace period with dokku checks:set <app> wait-to-retire <seconds> (default 60s) to control how long SIGTERM'd old containers stay up for draining connections
Use dokku checks:skip <app> [proctypes] to skip the wait without disabling checks entirely, or checks:disable for cases where downtime during deploy is acceptable
Inspect current settings with dokku checks:report <app>, and manually trigger checks via dokku checks:run <app>
Known gotchas
checks:disable causes real downtime (old containers stop before new ones are confirmed up) — this is different from checks:skip, which only removes the default wait but still starts new before stopping old
Web healthchecks are executed via curl from the Dokku host itself, so app code that validates a specific Host header or hostname can fail checks that would otherwise pass in production
The computed wait-to-retire falls back from the per-app value to the global value and finally to the built-in default of 60 seconds — check checks:report to see which is actually in effect
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?