Dockerfile 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. # =============================================================================
  2. # 禾瑞思航·低代码 AI 模型训练系统 — 多阶段构建
  3. # Stage 1: 构建 Vue 前端静态资源
  4. # Stage 2: 安装 Python 依赖并运行 FastAPI
  5. # =============================================================================
  6. # --- 前端构建 ---
  7. FROM node:22-alpine AS frontend-build
  8. WORKDIR /app
  9. COPY package.json package-lock.json* ./
  10. RUN npm ci 2>/dev/null || npm install
  11. COPY index.html vite.config.ts tsconfig.json tsconfig.node.json ./
  12. COPY public ./public
  13. COPY src ./src
  14. RUN npm run build
  15. # --- 后端运行 ---
  16. FROM python:3.11-slim
  17. WORKDIR /app
  18. ENV PYTHONDONTWRITEBYTECODE=1 \
  19. PYTHONUNBUFFERED=1 \
  20. TZ=Asia/Shanghai
  21. # OpenCV、curl(健康检查)等系统依赖
  22. RUN apt-get update && apt-get install -y --no-install-recommends \
  23. libgl1 \
  24. libglib2.0-0 \
  25. libsm6 \
  26. libxext6 \
  27. libxrender1 \
  28. curl \
  29. && rm -rf /var/lib/apt/lists/*
  30. COPY requirements.txt .
  31. RUN pip install --no-cache-dir -r requirements.txt
  32. COPY src/backend ./src/backend
  33. COPY --from=frontend-build /app/dist ./dist
  34. RUN mkdir -p uploads data models logs
  35. EXPOSE 8000
  36. CMD ["python", "-m", "uvicorn", "src.backend.main:app", "--host", "0.0.0.0", "--port", "8000"]