From c9e578a33eb2f6f82f9ef8eac855157e980b658e Mon Sep 17 00:00:00 2001 From: admin Date: Mon, 25 May 2026 14:44:08 +0700 Subject: [PATCH] 690525:1444 ADR-028-228-migration-OCR #02 --- .../Desk-5439/ocr-sidecar/Dockerfile | 4 ---- .../Desk-5439/ocr-sidecar/docker-compose.yml | 16 +++++++++++++--- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/specs/04-Infrastructure-OPS/04-00-docker-compose/Desk-5439/ocr-sidecar/Dockerfile b/specs/04-Infrastructure-OPS/04-00-docker-compose/Desk-5439/ocr-sidecar/Dockerfile index f2537a83..cae52d52 100644 --- a/specs/04-Infrastructure-OPS/04-00-docker-compose/Desk-5439/ocr-sidecar/Dockerfile +++ b/specs/04-Infrastructure-OPS/04-00-docker-compose/Desk-5439/ocr-sidecar/Dockerfile @@ -25,10 +25,6 @@ RUN pip install --no-cache-dir -r requirements.txt # Copy source code COPY app.py . -# Download PaddleOCR models ล่วงหน้าระหว่าง build (ลด cold-start time) -# โมเดลภาษาไทย (th) + อังกฤษ (en) ตาม ADR-023A -RUN python -c "from paddleocr import PaddleOCR; PaddleOCR(use_angle_cls=True, lang='en', use_gpu=False)" - EXPOSE 8765 HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \ diff --git a/specs/04-Infrastructure-OPS/04-00-docker-compose/Desk-5439/ocr-sidecar/docker-compose.yml b/specs/04-Infrastructure-OPS/04-00-docker-compose/Desk-5439/ocr-sidecar/docker-compose.yml index 243532b0..9af32c8e 100644 --- a/specs/04-Infrastructure-OPS/04-00-docker-compose/Desk-5439/ocr-sidecar/docker-compose.yml +++ b/specs/04-Infrastructure-OPS/04-00-docker-compose/Desk-5439/ocr-sidecar/docker-compose.yml @@ -2,6 +2,7 @@ # 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 # # วิธีรัน: # docker compose up -d --build @@ -27,9 +28,14 @@ services: # ตั้ง USE_GPU=true เพื่อใช้ RTX 2060 Super (ต้องติดตั้ง nvidia-container-toolkit) USE_GPU: "false" volumes: - # mount path เดียวกับที่ backend เห็น (permanent uploads) - # ต้องตรงกับ UPLOAD_PERMANENT_DIR ที่ backend ใช้ผ่าน network share - - /share/np-dms-as/data/uploads:/mnt/uploads:ro + # Model cache — Docker named volume เพื่อไม่ต้อง download ใหม่ทุกครั้ง + - paddleocr_models:/root/.paddleocr + # Uploads จาก QNAP NAS ผ่าน SMB (map drive ก่อน เช่น net use Z: \\192.168.10.8\np-dms-as) + # หรือใช้ Windows path โดยตรง: //192.168.10.8/np-dms-as/data/uploads + - type: bind + source: //192.168.10.8/np-dms-as/data/uploads + target: /mnt/uploads + read_only: true logging: driver: "json-file" options: @@ -41,3 +47,7 @@ services: timeout: 10s retries: 3 start_period: 60s + +volumes: + paddleocr_models: + name: paddleocr_models