# ============================================================================= # 禾瑞思航·低代码 AI 模型训练系统 Docker Compose(示例配置,可按环境修改) # ============================================================================= # 架构说明: # - 前端:Vue 3 + Vite 构建为静态资源,由 FastAPI 在 8000 端口统一对外服务 # - 后端:FastAPI + Uvicorn,提供 /api 接口与模型训练/推理能力 # - 数据库:默认 SQLite(industrial_ocr.db),数据通过卷持久化到宿主机 # # 快速启动: # docker compose up -d --build # # 本地开发(前后端分离热更新): # 后端:.\start.ps1 或 start.bat # 前端:npm run dev (默认 http://localhost:3000,API 代理到 8000) # # 预构建镜像部署(取消 app.build 并启用 image): # image: your-registry.cn-hangzhou.cr.aliyuncs.com/your-namespace/islandfox:${APP_IMAGE_TAG:-latest} # ============================================================================= services: # 主应用(FastAPI 后端 + Vue 前端静态资源) app: build: context: . dockerfile: Dockerfile # 若使用远程镜像,注释 build 并启用下行: # image: your-registry.cn-hangzhou.cr.aliyuncs.com/your-namespace/islandfox:${APP_IMAGE_TAG:-latest} # pull_policy: always container_name: islandfox-app restart: unless-stopped environment: - TZ=Asia/Shanghai - PYTHONUNBUFFERED=1 # 宿主机端口:默认 8000;若端口冲突,在项目根目录 .env 写入 APP_PUBLISH_PORT=8001 ports: - "${APP_PUBLISH_PORT:-8000}:8000" volumes: # 上传文件(标注图片、检测结果等) - ./uploads:/app/uploads # 数据集与标注数据 - ./data:/app/data # 训练产物与模型文件 - ./models:/app/models # SQLite 数据库(默认路径 /app/industrial_ocr.db;首次部署前在宿主机执行: New-Item -ItemType File -Path industrial_ocr.db -Force) - ./industrial_ocr.db:/app/industrial_ocr.db # 应用日志 - app_logs:/app/logs networks: - islandfox-network logging: driver: "json-file" options: max-size: "10m" max-file: "3" compress: "true" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/docs"] interval: 30s timeout: 10s retries: 3 start_period: 60s # 如需在 Linux 宿主机使用 USB 摄像头,可取消注释(Windows/macOS 请改用 RTSP/HTTP 流地址) # devices: # - /dev/video0:/dev/video0 volumes: app_logs: driver: local networks: islandfox-network: driver: bridge