58 lines
1.9 KiB
YAML
58 lines
1.9 KiB
YAML
# File: specs/04-Infrastructure-OPS/04-00-docker-compose/Desk-5439/ocr-sidecar/docker-compose.yml
|
|
# PaddleOCR 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=ch (CTJK) เพื่อรองรับภาษาไทย
|
|
#
|
|
# วิธีรัน:
|
|
# 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: "ch" # ch = CTJK (รองรับภาษาไทย), en = English
|
|
# ตั้ง USE_GPU=true เพื่อใช้ RTX 2060 Super (ต้องติดตั้ง nvidia-container-toolkit)
|
|
USE_GPU: "false"
|
|
volumes:
|
|
# Model cache — Docker named volume เพื่อไม่ต้อง download ใหม่ทุกครั้ง
|
|
- paddleocr_models:/root/.paddleocr
|
|
# Uploads จาก QNAP NAS ผ่าน CIFS (SMB) volume — Docker mount โดยตรง
|
|
- qnap_uploads:/mnt/uploads:ro
|
|
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
|
|
|
|
volumes:
|
|
paddleocr_models:
|
|
name: paddleocr_models
|
|
qnap_uploads:
|
|
driver: local
|
|
driver_opts:
|
|
type: cifs
|
|
o: "username=${QNAP_USER},password=${QNAP_PASS},vers=3.0,uid=0,gid=0"
|
|
device: "//192.168.10.8/np-dms-as/data/uploads"
|