# CUDA 11.8 + Ubuntu 22.04 + cuDNN8 + TensorRT 8.6 + Python3.10 FROM nvcr.io/nvidia/tensorrt:23.10-py3 #FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04 # ---------- 시스템 의존성 (Pango/Cairo/HarfBuzz/Fonts 포함) ---------- RUN apt-get update && apt-get install -y --no-install-recommends \ python3.10 python3-pip python3.10-distutils \ # OpenCV 런타임 libgl1-mesa-glx libgl1-mesa-dri libglib2.0-0 libgomp1 \ libsm6 libxext6 libxrender1 \ cuda-cudart-dev-11-8 \ # Pango / Cairo / HarfBuzz / GI 바인딩 libcairo2 libcairo2-dev \ libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 \ libharfbuzz0b libharfbuzz-icu0 \ gobject-introspection libgirepository1.0-dev \ python3-gi python3-gi-cairo \ # 글꼴과 폰트 설정 fontconfig fonts-nanum fonts-noto-cjk fonts-dejavu-core \ # 기타 pkg-config \ && rm -rf /var/lib/apt/lists/* # ---------- Python 기본 설정 ---------- RUN ln -sf /usr/bin/python3.10 /usr/local/bin/python && \ python -m pip install --upgrade pip WORKDIR /app # ---------- 파이썬 패키지 ---------- COPY requirements_worker.txt . COPY packages_worker/fastdeploy_gpu_python-1.0.7-cp310-cp310-manylinux1_x86_64.whl . # constraints 복사 COPY constraints.txt . RUN pip install --no-cache-dir --progress-bar off \ --index-url https://download.pytorch.org/whl/cu118 \ torch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 RUN pip install --no-cache-dir --progress-bar off -r requirements_worker.txt -c constraints.txt RUN pip install --no-cache-dir --progress-bar off fastdeploy_gpu_python-1.0.7-cp310-cp310-manylinux1_x86_64.whl # ---------- 메모리 추척 ---------- RUN pip install --no-cache-dir --progress-bar off pynvml # ---------- 프로젝트 파일 ---------- COPY worker /app/worker # COPY fonts /app/fonts ENV PYTHONUNBUFFERED=1 ENV TEMP_STORAGE=/app/temp_files RUN mkdir -p $TEMP_STORAGE # (선택) TensorRT 런타임이 정말 필요하면 NVIDIA 레포 추가 후 libnvinfer8 설치 필요. # 없다면 FastDeploy가 자동으로 Paddle Inference로 폴백하니 생략해도 동작은 함. # 성능 이유로 TRT를 쓰려면 별도 설치 가이드대로 세팅 권장. # ---------- Celery 엔트리포인트 ---------- # ★ 중요: -A 경로를 실제 celery_app 이 있는 모듈:변수 로 맞추세요. # 예) celery_worker.py 안에 celery_app = Celery(...) 라면: CMD ["celery", "-A", "worker.celery_worker:celery_app", "worker", "-l", "info", "--concurrency=1"]