# --- Stage 1: Build --- FROM node:20-alpine AS builder WORKDIR /app COPY package.json package-lock.json* bun.lock* ./ RUN npm install COPY . . RUN npm run build # --- Stage 2: Runner --- FROM node:20-alpine AS runner WORKDIR /app ENV NODE_ENV=production ENV PORT=3000 COPY package.json package-lock.json* bun.lock* ./ RUN npm install --only=production COPY --from=builder /app/dist ./dist EXPOSE 3000 CMD ["node", "dist/server.cjs"]