| 12345678910111213141516171819202122232425262728293031323334 |
- # 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/ .
- # 构建生产版本
- RUN yarn 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;"]
|