# Build stage FROM node:20-alpine AS builder WORKDIR /app # Copy package files COPY frontend/package*.json ./ # Install dependencies RUN npm ci # Copy source code COPY frontend/ . # Build argument for API URL (Next.js uses NEXT_PUBLIC_) ARG NEXT_PUBLIC_API_URL=http://backend:8000 ENV NEXT_PUBLIC_API_URL=${NEXT_PUBLIC_API_URL} # Build Next.js app RUN npm run build # Production stage FROM node:20-alpine WORKDIR /app # Copy only necessary files from builder COPY --from=builder /app/public ./public COPY --from=builder /app/.next ./.next COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/package.json ./package.json EXPOSE 3000 # Start Next.js in production mode CMD ["npm", "start"]