# 构建阶段 FROM node:20-alpine AS builder # 安装 pnpm RUN corepack enable && corepack prepare pnpm@latest --activate # 设置工作目录 WORKDIR /app # 复制包管理文件 COPY package.json pnpm-lock.yaml ./ # 安装依赖 RUN pnpm install --frozen-lockfile # 复制源代码 COPY . . # 构建应用 RUN pnpm build # 生产阶段 FROM node:20-alpine AS production # 设置工作目录 WORKDIR /app # 从构建阶段复制构建产物 COPY --from=builder /app/.output ./.output # 暴露端口 EXPOSE 3000 # 设置环境变量 ENV NODE_ENV=production ENV HOST=0.0.0.0 ENV PORT=3000 # 启动应用 CMD ["node", ".output/server/index.mjs"]