|
|
@@ -0,0 +1,72 @@
|
|
|
+# =============================================================================
|
|
|
+# 低代码 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
|