# Stage 1: Build FROM node:current-alpine AS builder # Set working directory WORKDIR /app # Copy package.json and package-lock.json COPY package*.json ./ # Install dependencies including development dependencies RUN npm install # Copy the application code COPY . . # Install type definitions for react-responsive-masonry and node-fetch RUN npm install --save-dev @types/react-responsive-masonry @types/node-fetch # Build the Next.js application RUN npm run build # Stage 2: Production FROM node:current-alpine # Set working directory WORKDIR /app # Copy only the necessary files from the build stage COPY --from=builder /app/package*.json ./ COPY --from=builder /app/.next ./.next COPY --from=builder /app/public ./public COPY --from=builder /app/.env .env # Install only production dependencies RUN npm install --only=production # Expose the port the app runs on EXPOSE 3000 # Run the app with the start script ENTRYPOINT [ "npm", "run", "start" ]