# 1. Install dependencies and build the project FROM alpine:latest AS builder # Install node and yarn RUN apk add --no-cache nodejs npm RUN npm install -g yarn # Enable Corepack RUN corepack enable WORKDIR /app COPY package.json yarn.lock ./ RUN yarn install --immutable COPY . . # Next.js standalone output copies only necessary files RUN yarn build ENV NEXT_TELEMETRY_DISABLED=1 # 2. Production stage: use a minimal base image FROM alpine:latest AS runner WORKDIR /app # Set the environment variable for standalone output directory ENV NODE_ENV=production # Next.js will copy the standalone files to /app/standalone/.next ENV NEXT_TELEMETRY_DISABLED=1 COPY --from=builder /app/public ./public COPY --from=builder /app/.next/standalone ./ COPY --from=builder /app/.next/static ./.next/static EXPOSE 3000 CMD ["node", "server.js"]