fix(skaldsong): group_add the host docker gid so the app can write its root:docker state dirs

The db/ and runs/ bind mounts are root:docker 2775 since the 2026-09-14 tree
normalisation; the app runs as 1000:1000, so SQLite could not create its journal
and every write returned 500 (found at v0.40.2).
This commit is contained in:
vh
2026-10-05 02:32:08 -07:00
parent af2f77a9c6
commit 67b91eff46
+8
View File
@@ -105,6 +105,14 @@ services:
# is NOT bind-mounted → state wiped on every recreate. # is NOT bind-mounted → state wiped on every recreate.
SKALDSONG_HOST_SQLITE_PATH: /app/state/db/skaldsong-ui.db SKALDSONG_HOST_SQLITE_PATH: /app/state/db/skaldsong-ui.db
SKALDSONG_HOST_RUNS_ROOT: /app/state/runs SKALDSONG_HOST_RUNS_ROOT: /app/state/runs
# The state dirs below are root:docker 2775 (setgid, group-writable) since the 2026-09-14 docker-tree
# normalisation (playbooks/normalize-docker-tree.yaml), not lkraven-owned as first deployed. The app runs as
# uid 1000 with gid 1000 only, so SQLite could not create its -journal beside the db (every write 500'd,
# found 2026-10-05 at v0.40.2). Joining the host's docker GID makes the bind-mounted dirs writable and
# survives the next re-own. 112 = ana-docker's docker gid (this stack runs only there; new hosts pin 851).
# No docker socket is mounted here, so the membership grants file access on these two dirs only.
group_add:
- "112"
volumes: volumes:
# db/ and runs/ are separate bind-mounts so runs/ can later move to # db/ and runs/ are separate bind-mounts so runs/ can later move to
# a bigger volume without touching DB state. # a bigger volume without touching DB state.