|
|
|
|
@ -0,0 +1,35 @@
|
|
|
|
|
# 阶段1: 构建阶段
|
|
|
|
|
FROM node:22.14.0-slim AS builder
|
|
|
|
|
|
|
|
|
|
WORKDIR /app
|
|
|
|
|
|
|
|
|
|
# 全局安装 pnpm
|
|
|
|
|
RUN npm install -g pnpm
|
|
|
|
|
|
|
|
|
|
# 复制依赖文件
|
|
|
|
|
COPY package.json pnpm-lock.yaml ./
|
|
|
|
|
RUN pnpm install --registry https://registry.npmmirror.com
|
|
|
|
|
|
|
|
|
|
# 复制源码并构建
|
|
|
|
|
COPY . .
|
|
|
|
|
RUN pnpm run build:prod
|
|
|
|
|
|
|
|
|
|
# 阶段2: 生产运行阶段
|
|
|
|
|
FROM node:22.14.0-slim
|
|
|
|
|
|
|
|
|
|
WORKDIR /app
|
|
|
|
|
|
|
|
|
|
# 全局安装 pnpm(确保运行时可用)
|
|
|
|
|
RUN npm install -g pnpm --registry https://registry.npmmirror.com
|
|
|
|
|
|
|
|
|
|
# 从构建阶段复制所有文件(包括 node_modules 和构建产物)
|
|
|
|
|
COPY --from=builder /app .
|
|
|
|
|
|
|
|
|
|
# 设置环境变量
|
|
|
|
|
ENV PORT 8088
|
|
|
|
|
ENV NODE_ENV production
|
|
|
|
|
|
|
|
|
|
EXPOSE 8088
|
|
|
|
|
|
|
|
|
|
# 使用 pnpm 启动
|
|
|
|
|
CMD ["pnpm", "start"]
|