# File: specs/04-Infrastructure-OPS/04-00-docker-compose/Desk-5439/ocr-sidecar/docker-compose.yml # Tesseract OCR Sidecar — รันบน Desk-5439 (AI Isolation Host) ตาม ADR-023A # Change Log: # - 2026-05-25: Initial compose file สำหรับ PaddleOCR HTTP sidecar # - 2026-05-25: แก้ volumes ให้ถูกต้องสำหรับ Windows + Docker Desktop # - 2026-05-30: เพิ่ม OCR_LANG=tha+eng (Tesseract Thai + English) # - 2026-05-30: เพิ่ม Typhoon OCR environment variables (T009b, ADR-032) # OLLAMA_API_URL ชี้ไปที่ http://192.168.10.100:11434 (Admin Desktop LAN IP) # - 2026-05-30: Revert volumes กลับไปใช้ Windows Z: drive bind mount (แทน CIFS volume driver ที่พัง) # - 2026-06-01: ลบ volumes ออกทั้งหมด — backend ส่ง file content ผ่าน multipart /ocr-upload แทน # ไม่ต้องการ shared storage อีกต่อไป # - 2026-06-01: เปลี่ยน TYPHOON_OCR_MODEL เป็น scb10x/typhoon-ocr1.5-3b # # วิธีรัน: # docker compose up -d --build # # ทดสอบ: # curl http://192.168.10.100:8765/health name: lcbp3-ocr services: ocr-sidecar: build: context: . dockerfile: Dockerfile container_name: ocr-sidecar restart: unless-stopped ports: - "8765:8765" environment: OCR_CHAR_THRESHOLD: "100" OCR_PORT: "8765" OCR_MAX_PAGES: "0" OCR_LANG: "tha+eng" # Tesseract language code (Thai + English) USE_GPU: "false" # OCR sidecar รันบน CPU, Typhoon OCR ใช้ Ollama แยก # ─── Typhoon OCR via Ollama (ADR-032) ─────────────────────────────────── # ชี้ไปที่ Ollama ที่รันบน Desk-5439 ผ่าน LAN IP (ไม่ใช่ host.docker.internal) OLLAMA_API_URL: "http://192.168.10.100:11434" TYPHOON_OCR_MODEL: "scb10x/typhoon-ocr1.5-3b" # Timeout 120 วินาที/หน้า (budget สำหรับ 3B model บน RTX 2060 Super) TYPHOON_OCR_TIMEOUT: "120" logging: driver: "json-file" options: max-size: "10m" max-file: "3" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8765/health"] interval: 30s timeout: 10s retries: 3 start_period: 60s