| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- # 使用 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"]
|