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.
32 lines
429 B
Plaintext
32 lines
429 B
Plaintext
# Dependencies (reinstalled inside the image)
|
|
node_modules
|
|
|
|
# Persisted data — never bake the SQLite file into the image
|
|
data
|
|
|
|
# Version control
|
|
.git
|
|
.gitignore
|
|
|
|
# Docs and tests are not needed at runtime
|
|
docs
|
|
tests
|
|
|
|
# Tooling / agent scaffolding
|
|
.claude
|
|
.claude-flow
|
|
.swarm
|
|
.mcp.json
|
|
ruvector.db
|
|
.playwright-mcp
|
|
scripts
|
|
|
|
# Local env files
|
|
.env
|
|
.env.*
|
|
|
|
# The Docker files themselves
|
|
Dockerfile
|
|
.dockerignore
|
|
docker-compose.yml
|