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