# Dockerfile FROM python:3.10-slim # 1. 시스템 패키지 설치 및 시간대 설정 (Root 권한) RUN apt-get update && \ apt-get install -y tzdata && \ ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime && \ echo "Asia/Seoul" > /etc/timezone && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* WORKDIR /app # 2. 의존성 파일 복사 COPY requirements.txt . # 3. 'uv'를 사용하여 패키지 설치 (핵심 해결책) # pip 대신 uv를 사용하면 resolution-too-deep 에러를 해결할 수 있습니다. # --system 옵션으로 시스템 파이썬 환경에 직접 설치합니다 (도커 내부는 격리되어 있으므로 안전함). RUN pip install uv && \ uv pip install --system --no-cache-dir --extra-index-url https://download.pytorch.org/whl/cpu -r requirements.txt # 4. 보안을 위해 유저 생성 및 전환 RUN useradd -m -u 1000 user USER user ENV PATH="/home/user/.local/bin:$PATH" # 5. 소스 코드 복사 (유저 권한으로) COPY --chown=user . /app # 6. 서버 실행 CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]