75ea9b7416
/app/data is a bind mount, so the chown baked into the image is
overwritten by the host directory's ownership at runtime. On a fresh
prod deploy Docker creates ./data as root-owned, but the container ran
as the non-root nextjs user, so Prisma couldn't open lovelope.db
("unable to open database file").
Add an entrypoint that starts as root, chowns /app/data, then drops to
nextjs via su-exec before running migrations and starting the server.
7 lines
124 B
Bash
7 lines
124 B
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
chown -R nextjs:nodejs /app/data
|
|
|
|
exec su-exec nextjs sh -c "npx prisma migrate deploy && node server.js"
|