feat: 添加 Docker 部署支持和多 OCR 提供商架构
- 添加完整的 Docker 配置 (Dockerfile, docker-compose.yml) - 修复前端硬编码端口 4000,改用相对路径 /api - 实现多 OCR 提供商架构 (Tesseract.js/Baidu/RapidOCR) - 修复 Docker 环境中图片上传路径问题 - 添加用户设置页面和 AI 分析服务 - 更新 Prisma schema 支持 AI 分析结果 - 添加部署文档和 OCR 配置指南 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
72
docker-compose.yml
Normal file
72
docker-compose.yml
Normal file
@@ -0,0 +1,72 @@
|
||||
services:
|
||||
# ========================
|
||||
# Backend Service
|
||||
# ========================
|
||||
backend:
|
||||
build:
|
||||
context: ./backend
|
||||
dockerfile: Dockerfile
|
||||
container_name: picanalysis-backend
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
NODE_ENV: production
|
||||
DATABASE_URL: file:./prod.db
|
||||
PORT: 13057
|
||||
CORS_ORIGIN: http://localhost:13056
|
||||
JWT_SECRET: ${JWT_SECRET}
|
||||
JWT_EXPIRES_IN: ${JWT_EXPIRES_IN:-24h}
|
||||
OCR_PROVIDER: ${OCR_PROVIDER:-tesseract}
|
||||
OCR_CONFIDENCE_THRESHOLD: ${OCR_CONFIDENCE_THRESHOLD:-0.3}
|
||||
BAIDU_OCR_API_KEY: ${BAIDU_OCR_API_KEY:-}
|
||||
BAIDU_OCR_SECRET_KEY: ${BAIDU_OCR_SECRET_KEY:-}
|
||||
GLM_API_KEY: ${GLM_API_KEY:-}
|
||||
GLM_API_URL: ${GLM_API_URL:-https://open.bigmodel.cn/api/paas/v4/chat/completions}
|
||||
GLM_MODEL: ${GLM_MODEL:-glm-4-flash}
|
||||
MINIMAX_API_KEY: ${MINIMAX_API_KEY:-}
|
||||
DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY:-}
|
||||
UPLOAD_MAX_SIZE: ${UPLOAD_MAX_SIZE:-10485760}
|
||||
UPLOAD_ALLOWED_TYPES: ${UPLOAD_ALLOWED_TYPES:-image/jpeg,image/png,image/webp}
|
||||
volumes:
|
||||
# Persist database and uploads
|
||||
- backend-data:/app/data
|
||||
- backend-uploads:/app/uploads
|
||||
networks:
|
||||
- picanalysis-network
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:13057/api/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 40s
|
||||
|
||||
# ========================
|
||||
# Frontend Service
|
||||
# ========================
|
||||
frontend:
|
||||
build:
|
||||
context: ./frontend
|
||||
dockerfile: Dockerfile
|
||||
container_name: picanalysis-frontend
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "${FRONTEND_PORT:-13056}:80"
|
||||
networks:
|
||||
- picanalysis-network
|
||||
depends_on:
|
||||
- backend
|
||||
|
||||
# ========================
|
||||
# Volumes
|
||||
# ========================
|
||||
volumes:
|
||||
backend-data:
|
||||
driver: local
|
||||
backend-uploads:
|
||||
driver: local
|
||||
|
||||
# ========================
|
||||
# Networks
|
||||
# ========================
|
||||
networks:
|
||||
picanalysis-network:
|
||||
driver: bridge
|
||||
Reference in New Issue
Block a user