FROM node:20-alpine AS builder
WORKDIR /app
COPY package.json ./
RUN npm install
COPY next.config.ts tsconfig.json postcss.config.mjs tailwind.config.ts ./
COPY src/ ./src/
COPY public/ ./public/
COPY .env* ./
ENV NEXT_TELEMETRY_DISABLED=1
RUN npm run build

FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app/.next/standalone/ ./
COPY --from=builder /app/.next/static/ ./.next/static/
COPY --from=builder /app/public/ ./public/
COPY --from=builder /app/node_modules/.prisma/ ./
COPY --from=builder /app/node_modules/@prisma/ ./node_modules/@prisma/
RUN apk add --no-cache openssl
EXPOSE 3000
CMD ["node", "server.js"]
