690525:1444 ADR-028-228-migration-OCR #02
CI / CD Pipeline / build (push) Successful in 4m32s
CI / CD Pipeline / deploy (push) Successful in 1m42s

This commit is contained in:
2026-05-25 14:44:08 +07:00
parent 256a31b38c
commit c9e578a33e
2 changed files with 13 additions and 7 deletions
@@ -25,10 +25,6 @@ RUN pip install --no-cache-dir -r requirements.txt
# Copy source code # Copy source code
COPY app.py . 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 EXPOSE 8765
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \ HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
@@ -2,6 +2,7 @@
# PaddleOCR Sidecar — รันบน Desk-5439 (AI Isolation Host) ตาม ADR-023A # PaddleOCR Sidecar — รันบน Desk-5439 (AI Isolation Host) ตาม ADR-023A
# Change Log: # Change Log:
# - 2026-05-25: Initial compose file สำหรับ PaddleOCR HTTP sidecar # - 2026-05-25: Initial compose file สำหรับ PaddleOCR HTTP sidecar
# - 2026-05-25: แก้ volumes ให้ถูกต้องสำหรับ Windows + Docker Desktop
# #
# วิธีรัน: # วิธีรัน:
# docker compose up -d --build # docker compose up -d --build
@@ -27,9 +28,14 @@ services:
# ตั้ง USE_GPU=true เพื่อใช้ RTX 2060 Super (ต้องติดตั้ง nvidia-container-toolkit) # ตั้ง USE_GPU=true เพื่อใช้ RTX 2060 Super (ต้องติดตั้ง nvidia-container-toolkit)
USE_GPU: "false" USE_GPU: "false"
volumes: volumes:
# mount path เดียวกับที่ backend เห็น (permanent uploads) # Model cache — Docker named volume เพื่อไม่ต้อง download ใหม่ทุกครั้ง
# ต้องตรงกับ UPLOAD_PERMANENT_DIR ที่ backend ใช้ผ่าน network share - paddleocr_models:/root/.paddleocr
- /share/np-dms-as/data/uploads:/mnt/uploads:ro # 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: logging:
driver: "json-file" driver: "json-file"
options: options:
@@ -41,3 +47,7 @@ services:
timeout: 10s timeout: 10s
retries: 3 retries: 3
start_period: 60s start_period: 60s
volumes:
paddleocr_models:
name: paddleocr_models