# Dockerfile # Python slim 이미지를 기반으로 사용 (용량 절감) FROM python:3.10-slim # 필요한 환경 변수 설정 ENV PYTHONUNBUFFERED 1 ENV APP_HOME /app WORKDIR $APP_HOME # 시스템 패키지 설치: OpenCV가 필요로 하는 패키지 RUN apt-get update && \ apt-get install -y --no-install-recommends \ libgl1-mesa-glx \ libsm6 \ libxext6 \ libxrender1 && \ rm -rf /var/lib/apt/lists/* # requirements.txt 복사 및 설치 COPY requirements.txt . RUN pip install --no-cache-dir --upgrade pip RUN pip install --no-cache-dir -r requirements.txt # 애플리케이션 코드 복사 COPY app.py . # 인덱스 파일들이 위치할 'data' 폴더 생성 및 파일 복사 # FAISS 인덱스 파일과 pickle 파일은 미리 이 폴더에 넣어야 합니다. RUN mkdir -p data # COPY ./data/faiss_index_v2.index data/ # COPY ./data/faiss_labels_v2.pkl data/ # (주: 위의 두 줄은 실제로 인덱스 파일을 repo에 추가한 후 주석을 해제해야 합니다.) # FastAPI 앱 실행 (Hugging Face Spaces 기본 포트 7860 사용) CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]