# Stage 1: 构建前端 FROM node:20-alpine AS builder WORKDIR /app # 复制依赖文件 COPY frontend/react-template/package.json frontend/react-template/yarn.lock* ./ # 安装依赖 RUN yarn install --frozen-lockfile # 复制源码 COPY frontend/react-template/ . # 构建生产版本(跳过 TypeScript 类型检查) RUN vite build # Stage 2: nginx 托管 FROM nginx:alpine # 安装 curl(用于健康检查) RUN apk add --no-cache curl # 复制 nginx 配置 COPY nginx.conf /etc/nginx/conf.d/default.conf # 复制构建产物 COPY --from=builder /app/dist /usr/share/nginx/html # 暴露端口 EXPOSE 3000 # 启动 nginx CMD ["nginx", "-g", "daemon off;"]