# 第一阶段:构建 React 应用 FROM node:20-alpine AS builder WORKDIR /app # 复制 package.json 和 package-lock.json COPY package*.json ./ # 安装依赖 RUN npm ci --only=production=false # 复制所有源代码 COPY . . # 构建生产版本 RUN npm run build # 第二阶段:使用 Nginx 托管静态文件 FROM nginx:1.27-alpine WORKDIR /usr/share/nginx/html # 删除 Nginx 默认的静态文件 RUN rm -rf ./* # 从构建阶段复制构建好的静态文件 COPY --from=builder /app/dist . # 复制自定义的 Nginx 配置 COPY nginx.conf /etc/nginx/conf.d/default.conf # 暴露前端服务端口 EXPOSE 80 # 启动 Nginx CMD ["nginx", "-g", "daemon off;"]