# ───────────────────────────────────────────── # QP Backend (FastAPI + LangGraph 멀티모달 RAG) # Python 3.10 — 개발 가상환경과 동일 버전 유지 # ───────────────────────────────────────────── FROM python:3.10-slim WORKDIR /app # Pillow 런타임 의존성 RUN apt-get update && apt-get install -y --no-install-recommends \ libjpeg62-turbo \ zlib1g \ && rm -rf /var/lib/apt/lists/* # 의존성 먼저 설치 (도커 레이어 캐싱) COPY requirements.txt . RUN pip install --no-cache-dir --upgrade pip && \ pip install --no-cache-dir -r requirements.txt # 애플리케이션 코드 COPY main.py . # ─── 환경변수 (이미지 baked-in 기본값) ─── # QP_API_PORT만 baked-in. 나머지(서비스 URL, SNAP_DATA_DIR)는 docker run에서 주입. ENV QP_API_PORT=18503 EXPOSE 18503 # gunicorn + uvicorn worker CMD ["gunicorn", "main:app", \ "--workers", "4", \ "--worker-class", "uvicorn.workers.UvicornWorker", \ "--bind", "0.0.0.0:18503", \ "--timeout", "300"]