# Stage 1: Build FROM node:20 AS builder WORKDIR /app COPY package.json pnpm-lock.yaml ./ RUN npm install -g pnpm && pnpm install --frozen-lockfile COPY . . RUN pnpm build # Stage 2: Runtime FROM node:20-slim AS runner WORKDIR /app COPY --from=builder /app/.output ./.output COPY package.json pnpm-lock.yaml ./ EXPOSE 3000 CMD ["node", ".output/server/index.mjs"]