From d91ff3f07c84bcd2af136a9b78c75d084074bed4 Mon Sep 17 00:00:00 2001 From: Daniel Arroyo Date: Tue, 24 Mar 2026 12:06:58 -0300 Subject: [PATCH] fix: Run prisma db push as root, then switch to nextjs user for app --- Dockerfile | 11 +++++------ docker-entrypoint.sh | 5 ++--- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index ab60477..d755615 100644 --- a/Dockerfile +++ b/Dockerfile @@ -41,7 +41,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ && rm -rf /var/lib/apt/lists/* \ && groupadd --system --gid 1001 nodejs \ && useradd --system --uid 1001 nextjs \ - && mkdir -p /home/nextjs && chown nextjs:nextjs /home/nextjs + && mkdir -p /home/nextjs && chown nextjs:nextjs /home/nextjs \ + && apt-get clean && rm -rf /var/lib/apt/lists/* COPY --from=builder /app/public ./public COPY --from=builder /app/.next/standalone ./ @@ -55,10 +56,8 @@ COPY --from=builder /app/prisma/schema.prisma /app/schema.prisma COPY docker-entrypoint.sh /usr/local/bin/ RUN chmod +x /usr/local/bin/docker-entrypoint.sh -# Create data directory and initialize database as root -RUN mkdir -p /app/data && chown -R nextjs:nodejs /app - -USER nextjs +# Create data directory with proper permissions +RUN mkdir -p /app/data && chown -R nextjs:nextjs /app EXPOSE 3000 @@ -67,5 +66,5 @@ ENV HOSTNAME="0.0.0.0" ENV DATABASE_URL="file:./data/dev.db" ENV HOME=/home/nextjs -ENTRYPOINT ["docker-entrypoint.sh"] +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] CMD ["node", "server.js"] diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index ffe3892..286b216 100644 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -4,12 +4,11 @@ set -e # Initialize database if it doesn't exist or schema changed echo "Checking database..." -# Create data directory and set proper permissions +# Ensure data directory exists with proper permissions mkdir -p /app/data -chmod 755 /app/data # Use local prisma version from node_modules ./node_modules/prisma/build/index.js db push echo "Starting application..." -exec "$@" +exec su nextjs -c "cd /app && node server.js" -- 2.49.1