Fix bind-mount data dir permissions via entrypoint

Docker creates ./data root-owned on the host, but the app runs as the unprivileged node user, causing SQLITE_CANTOPEN on first deploy. New entrypoint starts as root, chowns DATA_DIR, then drops privileges with setpriv. Compose keeps the SQLite database in ./data next to the compose file. Also trims scripts/ and playwright artifacts from the image.
This commit is contained in:
2026-07-18 23:54:50 +07:00
parent fe89bb2b1c
commit 1d86c68665
5 changed files with 32 additions and 4 deletions
+3 -1
View File
@@ -4,7 +4,9 @@ services:
ports:
- "3000:3000"
volumes:
# SQLite database persists on the host across container rebuilds.
# SQLite database lives in ./data next to this compose file and
# persists across container rebuilds. The entrypoint fixes ownership
# automatically (the app itself runs as the unprivileged `node` user).
- ./data:/app/data
environment:
# CHANGE THIS: set a long random string before exposing the app.