fix: Create home directory for nextjs user to fix npm permissions

This commit is contained in:
2026-03-24 09:02:54 -03:00
parent 3ff5e6b031
commit f6218283f1
2 changed files with 9 additions and 3 deletions

View File

@@ -40,7 +40,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
openssl \ openssl \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
&& groupadd --system --gid 1001 nodejs \ && groupadd --system --gid 1001 nodejs \
&& useradd --system --uid 1001 nextjs && useradd --system --uid 1001 nextjs \
&& mkdir -p /home/nextjs && chown nextjs:nextjs /home/nextjs
COPY --from=builder /app/public ./public COPY --from=builder /app/public ./public
COPY --from=builder /app/.next/standalone ./ COPY --from=builder /app/.next/standalone ./
@@ -52,6 +53,9 @@ COPY --from=builder /app/prisma/schema.prisma /app/schema.prisma
COPY docker-entrypoint.sh /usr/local/bin/ COPY docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh 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 USER nextjs
EXPOSE 3000 EXPOSE 3000
@@ -59,6 +63,7 @@ EXPOSE 3000
ENV PORT=3000 ENV PORT=3000
ENV HOSTNAME="0.0.0.0" ENV HOSTNAME="0.0.0.0"
ENV DATABASE_URL="file:./data/dev.db" ENV DATABASE_URL="file:./data/dev.db"
ENV HOME=/home/nextjs
ENTRYPOINT ["docker-entrypoint.sh"] ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["node", "server.js"] CMD ["node", "server.js"]

View File

@@ -4,11 +4,12 @@ set -e
# Initialize database if it doesn't exist or schema changed # Initialize database if it doesn't exist or schema changed
echo "Checking database..." echo "Checking database..."
# Create data directory if it doesn't exist # Create directories with proper permissions
mkdir -p /app/data mkdir -p /app/data
mkdir -p /app/.npm
# Push schema (safe - won't overwrite data, only syncs schema) # Push schema (safe - won't overwrite data, only syncs schema)
npx prisma db push --skip-generate --skip-pull npm exec -- prisma db push --skip-generate --skip-pull
echo "Starting application..." echo "Starting application..."
exec "$@" exec "$@"