# 考培练系统管理后台前端 Dockerfile # 多阶段构建:Node.js 构建 + Nginx 运行 # # 技术栈:Vue 3 + TypeScript + pnpm(符合瑞小美系统技术栈标准) # ============================================ # 阶段1:构建 # ============================================ FROM node:20.11-alpine AS builder WORKDIR /app # 安装 pnpm(符合规范:使用 pnpm 包管理器) RUN corepack enable && corepack prepare pnpm@9.0.0 --activate # 设置 pnpm 镜像 RUN pnpm config set registry https://registry.npmmirror.com # 安装依赖 COPY package.json pnpm-lock.yaml* ./ RUN pnpm install --frozen-lockfile || pnpm install # 复制源码并构建 COPY . . RUN pnpm run build # ============================================ # 阶段2:运行 # ============================================ FROM nginx:1.25.4-alpine # 复制构建产物 COPY --from=builder /app/dist /usr/share/nginx/html # 复制 nginx 配置 COPY nginx.conf /etc/nginx/conf.d/default.conf # 暴露端口 EXPOSE 80 # 健康检查(符合规范) HEALTHCHECK --interval=30s --timeout=10s --retries=3 \ CMD wget --no-verbose --tries=1 --spider http://localhost/ || exit 1 # 启动 nginx CMD ["nginx", "-g", "daemon off;"]