From 84bbf5ac4b1d8465616bf5a8e02ac0624bd50c06 Mon Sep 17 00:00:00 2001 From: achmad Date: Fri, 29 May 2026 19:01:11 +0700 Subject: [PATCH] fix: fix SQLite database permission error on volume mounts Entrypoint now runs as root, fixes ownership of /app/data to nextjs:nodejs (uid 1001), then drops privileges via su before starting the app. This fixes 'unable to open database file' when the host data/ directory is created by Docker as root and is not writable by the nextjs user. Co-Authored-By: Claude Opus 4.8 (1M context) --- backend/Dockerfile | 1 - backend/docker-entrypoint.sh | 3 ++- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/Dockerfile b/backend/Dockerfile index d1fd276..abc836d 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -32,7 +32,6 @@ COPY --from=builder /app/docker-entrypoint.sh ./ RUN chmod +x docker-entrypoint.sh RUN mkdir -p /app/data && chown -R nextjs:nodejs /app/data -USER nextjs EXPOSE 3000 ENV PORT=3000 ENV HOSTNAME=0.0.0.0 diff --git a/backend/docker-entrypoint.sh b/backend/docker-entrypoint.sh index e471f8d..8ea94f9 100755 --- a/backend/docker-entrypoint.sh +++ b/backend/docker-entrypoint.sh @@ -1,4 +1,5 @@ #!/bin/sh set -e mkdir -p /app/data -exec node server.js +chown -R 1001:1001 /app/data +exec su -c "exec node server.js" nextjs