# Python 3.12 기반 이미지 FROM python:3.12-slim # 작업 디렉토리 설정 WORKDIR /app # 시스템 의존성 설치 RUN apt-get update && apt-get install -y \ gcc \ postgresql-client \ curl \ && rm -rf /var/lib/apt/lists/* # 환경 변수 설정 ENV PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 # uv 설치 (빠른 Python 패키지 관리자) RUN pip install --no-cache-dir uv # requirements.txt 복사 및 설치 COPY requirements.txt ./ RUN uv pip install --system -r requirements.txt # 애플리케이션 코드 복사 COPY config/ ./config/ COPY services/ ./services/ COPY data/ ./data/ COPY app.py init_db.py ./ # 포트 노출 (Hugging Face Space는 7860 포트 사용) EXPOSE 7860 # 헬스체크 추가 HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \ CMD curl -f http://localhost:7860/ || exit 1 # 시작 스크립트 (Hugging Face Space는 자동으로 환경 변수를 주입함) CMD ["python", "app.py"]