version: '3.8' services: backend: build: context: ../.. dockerfile: deploy/1panel/Dockerfile.backend container_name: tool_ocr_backend restart: unless-stopped ports: - "${BACKEND_PORT:-8000}:8000" environment: - MYSQL_HOST=${MYSQL_HOST} - MYSQL_PORT=${MYSQL_PORT} - MYSQL_USER=${MYSQL_USER} - MYSQL_PASSWORD=${MYSQL_PASSWORD} - MYSQL_DATABASE=${MYSQL_DATABASE} - SECRET_KEY=${SECRET_KEY} - DIFY_BASE_URL=${DIFY_BASE_URL} - DIFY_API_KEY=${DIFY_API_KEY} - CORS_ORIGINS=http://localhost:${FRONTEND_PORT:-12010} - LOG_LEVEL=${LOG_LEVEL:-INFO} volumes: - tool_ocr_uploads:/app/backend/uploads - tool_ocr_storage:/app/backend/storage - tool_ocr_logs:/app/backend/logs - tool_ocr_models:/app/backend/models healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health"] interval: 30s timeout: 10s retries: 3 start_period: 60s deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] frontend: build: context: ../.. dockerfile: deploy/1panel/Dockerfile.frontend container_name: tool_ocr_frontend restart: unless-stopped ports: - "${FRONTEND_PORT:-12010}:80" environment: - VITE_API_BASE_URL=http://localhost:${BACKEND_PORT:-8000} depends_on: - backend healthcheck: test: ["CMD", "curl", "-f", "http://localhost:80"] interval: 30s timeout: 10s retries: 3 volumes: tool_ocr_uploads: tool_ocr_storage: tool_ocr_logs: tool_ocr_models: networks: default: name: tool_ocr_network