73 lines
2.0 KiB
YAML
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
|