Files
PicAnalysis/docker-compose.yml

73 lines
2.0 KiB
YAML
Raw Normal View History

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