Files
PicAnalysis/docker-compose.yml
congsh 358deeb380 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>
2026-02-26 18:20:46 +08:00

73 lines
2.0 KiB
YAML

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