FROM node:20-alpine AS builder WORKDIR /app # Install pnpm RUN corepack enable && corepack prepare pnpm@9.15.0 --activate # Copy package files COPY package.json pnpm-lock.yaml* ./ # Install dependencies RUN pnpm install --frozen-lockfile # Copy source COPY . . # Build RUN pnpm build # Production image FROM node:20-alpine AS runner WORKDIR /app # Install pnpm RUN corepack enable && corepack prepare pnpm@9.15.0 --activate # Copy package files and install prod dependencies only COPY package.json pnpm-lock.yaml* ./ RUN pnpm install --prod --frozen-lockfile # Copy built app COPY --from=builder /app/dist ./dist # Set environment ENV NODE_ENV=production ENV PORT=3302 EXPOSE 3302 CMD ["node", "dist/main.js"]