Dockerfile used node:20-slim but the project requires Node >=22
(--experimental-sqlite in tests, CI matrix). package.json had a
duplicate engines block where the second (>=20.0.0) silently
overwrote the correct first one (>=22.0.0).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
chown im Dockerfile reicht nicht: Docker überschreibt beim Mounten eines
named Volume die Image-Permissions. Entrypoint-Script (läuft als root)
korrigiert /data-Ownership zur Laufzeit und startet dann via su-exec
als unprivilegierten node-User (korrekte Signal-Weiterleitung).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
mkdir -p /data lief als root, danach USER node — node hatte keine
Schreibrechte auf das Volume-Mountpoint. chown node:node /data vor
dem USER-Wechsel behebt den SQLITE_CANTOPEN-Fehler beim Deploy.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>