snapshot: capture skaldsong env-var-name footgun (CD wiping state)
Same lesson family as the /app/web/dist mismatch — encoding container-internal contract (paths OR env var names) in compose needs to be verified against the Dockerfile + app, not against design-doc shorthand. Wrong env var names silently no-op; app falls back to Dockerfile defaults which orthogonally miss the bind mount, and state goes to ephemeral layer until next recreate.
This commit is contained in:
@@ -273,6 +273,20 @@ _As of 2026-05-20:_
|
|||||||
Lesson: when encoding container-internal paths in compose, verify
|
Lesson: when encoding container-internal paths in compose, verify
|
||||||
against the Dockerfile, not the design-doc.
|
against the Dockerfile, not the design-doc.
|
||||||
|
|
||||||
|
- `[2026-05-20]` `SKALDSONG_DB_PATH` + `SKALDSONG_RUNS_DIR` in
|
||||||
|
compose env block — names skaldsong's app doesn't read. App reads
|
||||||
|
`SKALDSONG_HOST_SQLITE_PATH` + `SKALDSONG_HOST_RUNS_ROOT` (per
|
||||||
|
Dockerfile ENV defaults). Wrong names = silently no-op; app fell
|
||||||
|
back to Dockerfile defaults pointing at `/app/data/...` which the
|
||||||
|
compose's bind mount did NOT cover (mount target was
|
||||||
|
`/app/state/...`). Result: every `--force-recreate` wiped the
|
||||||
|
SQLite DB along with the ephemeral container layer. Caught by
|
||||||
|
skaldsong-dev after operator noticed stories vanishing on each
|
||||||
|
CD push (althing thread `01KS4DPF6SXTBP4Q360JZVWPNT`). Fix in
|
||||||
|
`52e98fa` — rename env vars, bind targets unchanged. Same lesson
|
||||||
|
as the `/app/web/dist` footgun: verify env var NAMES against the
|
||||||
|
Dockerfile/app, not against design-doc shorthand.
|
||||||
|
|
||||||
- `[2026-05-19]` Playbook verify step `docker ps | grep healthy`
|
- `[2026-05-19]` Playbook verify step `docker ps | grep healthy`
|
||||||
racing the container's `start_period` (30s in compose's
|
racing the container's `start_period` (30s in compose's
|
||||||
healthcheck). Verify ran 0.09s after `compose up -d --force-recreate`
|
healthcheck). Verify ran 0.09s after `compose up -d --force-recreate`
|
||||||
|
|||||||
Reference in New Issue
Block a user