# 使用 Node.js LTS 版本作为基础镜像 FROM node:20-alpine AS builder # 安装 pnpm RUN npm install -g pnpm # 设置工作目录 WORKDIR /app # 复制包管理文件 COPY package.json pnpm-lock.yaml ./ # 安装依赖 RUN pnpm install --frozen-lockfile # 复制源代码和配置文件 COPY tsconfig.json ./ COPY src ./src COPY config.json ./ # 构建项目 RUN pnpm build # 生产阶段 FROM node:20-alpine # 安装 pnpm RUN npm install -g pnpm # 设置工作目录 WORKDIR /app # 从构建阶段复制依赖和构建产物 COPY --from=builder /app/package.json ./ COPY --from=builder /app/pnpm-lock.yaml ./ COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/dist ./dist COPY --from=builder /app/config.json ./ # 暴露端口(如果需要) # EXPOSE 3000 # 运行应用 CMD ["pnpm", "start"]