Procházet zdrojové kódy

fix: fix sqlite permission issue in Docker

Run entrypoint as root to chown data dir before dropping to nextjs
user via su-exec, fixing volume mount permission issues.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
zhangchunrui před 3 týdny
rodič
revize
3b4dbd8663
2 změnil soubory, kde provedl 5 přidání a 4 odebrání
  1. 2 3
      Dockerfile
  2. 3 1
      docker-entrypoint.sh

+ 2 - 3
Dockerfile

@@ -19,13 +19,13 @@ ENV NEXT_TELEMETRY_DISABLED=1
 
 RUN addgroup --system --gid 1001 nodejs && \
     adduser --system --uid 1001 nextjs && \
-    apk add --no-cache curl
+    apk add --no-cache curl su-exec
 
 COPY --from=builder /app/public ./public
 COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
 COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
 
-RUN mkdir -p /app/data && chown nextjs:nodejs /app/data
+RUN mkdir -p /app/data && chown -R nextjs:nodejs /app/data
 
 COPY docker-entrypoint.sh /app/docker-entrypoint.sh
 RUN chmod +x /app/docker-entrypoint.sh
@@ -37,5 +37,4 @@ ENV HOSTNAME="0.0.0.0"
 HEALTHCHECK --interval=30s --timeout=5s --retries=3 --start-period=30s \
   CMD curl -f http://localhost:3000 || exit 1
 
-USER nextjs
 ENTRYPOINT ["/app/docker-entrypoint.sh"]

+ 3 - 1
docker-entrypoint.sh

@@ -1,2 +1,4 @@
 #!/bin/sh
-exec node server.js
+# Fix data dir permissions (volume mount may override)
+chown -R nextjs:nodejs /app/data 2>/dev/null || true
+exec su-exec nextjs node server.js