FROM node:22-alpine AS deps WORKDIR /app RUN apk add --no-cache openssl libc6-compat COPY package*.json ./ RUN npm install FROM node:22-alpine AS builder WORKDIR /app RUN apk add --no-cache openssl libc6-compat COPY --from=deps /app/node_modules ./node_modules COPY . . ENV NEXT_TELEMETRY_DISABLED=1 RUN npx prisma generate RUN npm run build FROM node:22-alpine AS runner WORKDIR /app ENV NODE_ENV=production ENV NEXT_TELEMETRY_DISABLED=1 ENV HOSTNAME=0.0.0.0 ENV PORT=3000 RUN apk add --no-cache openssl libc6-compat \ && addgroup -S nodejs \ && adduser -S nextjs -G nodejs \ && mkdir -p /data/uploads COPY --chown=nextjs:nodejs --from=builder /app/package*.json ./ COPY --chown=nextjs:nodejs --from=builder /app/prisma ./prisma COPY --chown=nextjs:nodejs --from=builder /app/prisma.config.ts ./prisma.config.ts COPY --chown=nextjs:nodejs --from=builder /app/public ./public COPY --chown=nextjs:nodejs --from=builder /app/.next/standalone ./ COPY --chown=nextjs:nodejs --from=builder /app/.next/static ./.next/static COPY --chown=nextjs:nodejs --from=builder /app/node_modules ./node_modules RUN chown -R nextjs:nodejs /data /app USER nextjs EXPOSE 3000 CMD ["sh", "-c", "npx prisma db push --accept-data-loss --skip-generate && npx prisma db seed && node server.js"]