# Build stage FROM node:20-alpine AS builder WORKDIR /app # Install pnpm RUN npm install -g pnpm # Copy package files COPY pnpm-lock.yaml package.json ./ # Install dependencies RUN pnpm install --frozen-lockfile # Copy source code COPY . . # Build application RUN pnpm run build # Production stage FROM node:20-alpine WORKDIR /app # Install pnpm RUN npm install -g pnpm # Set environment to production ENV NODE_ENV=production # Copy package files from builder COPY package.json pnpm-lock.yaml ./ # Install production dependencies only RUN pnpm install --prod --frozen-lockfile # Copy built application from builder stage COPY --from=builder /app/.next ./.next COPY --from=builder /app/public ./public # Expose port EXPOSE 3000 # Start application CMD ["pnpm", "start"]