diff --git a/Dockerfile b/Dockerfile index 483dee9..0726c12 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,40 +1,24 @@ -FROM node:20-alpine AS base +FROM node:20-alpine -# Install openssl for Prisma RUN apk add --no-cache openssl ca-certificates -FROM base AS deps WORKDIR /app -COPY package*.json ./ -RUN npm ci --only=production -FROM base AS builder -WORKDIR /app -COPY package*.json ./ -RUN npm ci -COPY . . -RUN npx prisma generate && npm run build +RUN addgroup --system --gid 1001 nodejs && adduser --system --uid 1001 nextjs -FROM base AS runner -WORKDIR /app -ENV NODE_ENV=production -ENV PORT=3000 +# Copy standalone build (pre-built outside Docker) +COPY .next/standalone ./ +COPY .next/static ./.next/static +COPY public ./public +COPY prisma ./prisma +COPY node_modules/.prisma ./node_modules/.prisma -RUN addgroup --system --gid 1001 nodejs -RUN adduser --system --uid 1001 nextjs - -COPY --from=builder /app/.next/standalone ./ -COPY --from=builder /app/.next/static ./.next/static -COPY --from=builder /app/public ./public -COPY --from=builder /app/prisma ./prisma -COPY --from=builder /app/node_modules/.prisma ./node_modules/.prisma - -RUN mkdir -p /app/data && chown nextjs:nodejs /app/data +RUN rm -f .env && mkdir -p /app/data && chown -R nextjs:nodejs /app USER nextjs - EXPOSE 3000 +ENV NODE_ENV=production ENV DATABASE_URL="file:./dev.db" CMD ["node", "server.js"] diff --git a/prisma/schema.prisma b/prisma/schema.prisma index b1752d3..b298d08 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -1,6 +1,6 @@ generator client { provider = "prisma-client-js" - binaryTargets = ["native", "linux-musl", "debian-openssl-3.0.x"] + binaryTargets = ["native", "linux-musl", "debian-openssl-3.0.x", "linux-musl-openssl-3.0.x"] } datasource db {