# Use lightweight Node.js 20 base image FROM node:20-alpine as builder # Set working directory WORKDIR /app # Copy package files separately for better Docker caching COPY package.json package-lock.json ./ # Install dependencies RUN npm install # Copy entire project COPY . . # Build the Next.js app RUN npm run build # Use a minimal base image for running the app FROM node:20-alpine WORKDIR /app # Copy built files from the builder stage COPY --from=builder /app ./ # Expose port EXPOSE 3000 # Start Next.js in production mode CMD ["npm", "run", "start"]