chandra2 / docker-compose.yml
Hyungseoky's picture
Update docker-compose.yml
44fbc3b verified
Raw
History Blame Contribute Delete
2.1 kB
# docker-compose.yml - Chandra OCR 2 ์ „์ฒด ์Šคํƒ
# ์œ„์น˜: ~/projects/chandra/docker/docker-compose.yml
# --mm-processor-kwargs '{"max_pixels": 1003520, "min_pixels": 100352}'
services:
# ============================================
# Chandra vLLM ์ถ”๋ก  ์„œ๋ฒ„ (GPU)
# ============================================
vllm-server:
image: vllm/vllm-openai:v0.17.0
container_name: chandra-vllm
restart: unless-stopped
ipc: host
# ์™ธ๋ถ€ ํฌํŠธ ๋…ธ์ถœ ๋ถˆํ•„์š” (FastAPI๊ฐ€ ๊ฐ™์€ compose ๋„คํŠธ์›Œํฌ์—์„œ ์ ‘๊ทผ)
# ๋””๋ฒ„๊น… ํ•„์š” ์‹œ ์•„๋ž˜ ์ฃผ์„ ํ•ด์ œ
# ports:
# - "8000:8000"
volumes:
- ~/projects/models/chandra-ocr-2:/models/chandra-ocr-2:ro
environment:
- HF_HUB_OFFLINE=1
- TRANSFORMERS_OFFLINE=1
command: >
--model /models/chandra-ocr-2
--served-model-name chandra
--dtype bfloat16
--max-model-len 12384
--max-num-seqs 64
--max-num-batched-tokens 8192
--enable-prefix-caching
--mm-processor-kwargs '{"max_pixels": 2007040, "min_pixels": 100352}'
--gpu-memory-utilization 0.85
--trust-remote-code
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 5
start_period: 180s # ๋ชจ๋ธ ๋กœ๋”ฉ ๋Œ€๊ธฐ (3๋ถ„)
# ============================================
# FastAPI ์„œ๋น„์Šค (๊ธฐ์กด ์ธํ„ฐํŽ˜์ด์Šค ์œ ์ง€)
# ============================================
fastapi:
build:
context: .
dockerfile: Dockerfile
container_name: chandra-fastapi
restart: unless-stopped
ports:
- "10001:10001"
volumes:
- /var/run/docker.sock:/var/run/docker.sock # LibreOffice ์ปจํ…Œ์ด๋„ˆ ์ ‘๊ทผ์šฉ
- ./uploads:/app/uploads
environment:
- CHANDRA_VLLM_IP=vllm-server
- CHANDRA_VLLM_PORT=8000
depends_on:
vllm-server:
condition: service_healthy