Dockerfile.frontend 640 B

12345678910111213141516171819202122232425262728293031323334
  1. # Stage 1: 构建前端
  2. FROM node:20-alpine AS builder
  3. WORKDIR /app
  4. # 复制依赖文件
  5. COPY frontend/react-template/package.json frontend/react-template/yarn.lock* ./
  6. # 安装依赖
  7. RUN yarn install --frozen-lockfile
  8. # 复制源码
  9. COPY frontend/react-template/ .
  10. # 构建生产版本
  11. RUN yarn build
  12. # Stage 2: nginx 托管
  13. FROM nginx:alpine
  14. # 安装 curl(用于健康检查)
  15. RUN apk add --no-cache curl
  16. # 复制 nginx 配置
  17. COPY nginx.conf /etc/nginx/conf.d/default.conf
  18. # 复制构建产物
  19. COPY --from=builder /app/dist /usr/share/nginx/html
  20. # 暴露端口
  21. EXPOSE 3000
  22. # 启动 nginx
  23. CMD ["nginx", "-g", "daemon off;"]