# Build stage FROM node:22-alpine AS builder WORKDIR /app RUN corepack enable && corepack prepare pnpm@11.13.0 --activate COPY package.json pnpm-lock.yaml* ./ # pnpm 11 默认拒绝 build scripts,独立安装时无法读取 workspace 的 allowBuilds 配置 # 使用 --ignore-scripts 跳过(@nestjs/core/protobufjs 的 postinstall 非功能必需) # --no-frozen-lockfile:services/classes/ 无独立 pnpm-lock.yaml RUN pnpm install --no-frozen-lockfile --ignore-scripts COPY tsconfig.json nest-cli.json ./ COPY src ./src RUN pnpm build # Runtime stage FROM node:22-alpine WORKDIR /app RUN corepack enable && corepack prepare pnpm@11.13.0 --activate COPY package.json pnpm-lock.yaml* ./ RUN pnpm install --prod --no-frozen-lockfile --ignore-scripts COPY --from=builder /app/dist ./dist EXPOSE 3001 CMD ["node", "dist/main.js"]