FROM node:20-alpine AS builder # Install pnpm RUN corepack enable && corepack prepare pnpm@latest --activate WORKDIR /app # Install dependencies COPY package.json pnpm-lock.yaml ./ RUN pnpm install --frozen-lockfile # Copy source and build COPY . . RUN pnpm run build # Prune dev dependencies RUN pnpm prune --prod # --- Production image --- FROM node:20-alpine USER 1000 WORKDIR /app COPY --from=builder --chown=1000 /app/build ./build COPY --from=builder --chown=1000 /app/node_modules ./node_modules COPY --from=builder --chown=1000 /app/package.json ./ EXPOSE 3000 CMD ["node", "build"]