docker: run as non-root, add health check, document upaas (closes #147)
check / check (push) Successful in 1m4s
check / check (push) Successful in 1m4s
The runtime image runs as uid 10001, which owns /var/lib/dnswatcher. The working directory is /, so config loading finds no .env or dnswatcher config file there; the binary lives in /usr/local/bin. A Docker HEALTHCHECK probes /.well-known/healthcheck every 10 seconds with busybox wget, so the container is healthy well before upaas reads its health at 60 seconds. Startup now fails with an error naming the data directory when it cannot be written, instead of running with every save failing. The check creates the directory if needed and writes and removes the temp file Save uses. README gains "Running under upaas": the prod branch, host directory setup, network and port, environment and health check. Model: opus-5-5
This commit is contained in:
@@ -23,6 +23,9 @@ Rationale, Design, TODO, License, Author) if any are still missing.
|
||||
|
||||
# Completed Steps
|
||||
|
||||
- 2026-09-28: upaas deploy readiness — runtime image runs as unprivileged
|
||||
`dnswatcher`, Docker `HEALTHCHECK`, startup fails when the data directory is
|
||||
not writable, README "Running under upaas" (closes #147).
|
||||
- 2026-09-21: added behavioural tests for `internal/globals`,
|
||||
`internal/healthcheck`, and `internal/logger` (closes #110).
|
||||
- 2026-09-21: `go mod tidy` dropped the redundant `golang.org/x/sync`
|
||||
|
||||
Reference in New Issue
Block a user