# ============================================================= # Hugging Face Spaces용 Dockerfile # 시계열 예측 서비스 (N-BEATS, Prophet, ARIMA/SARIMA, XGBoost) # ============================================================= FROM python:3.10-slim # 시스템 의존성 설치 (Prophet, statsmodels 빌드에 필요) RUN apt-get update && apt-get install -y \ gcc \ g++ \ build-essential \ libgomp1 \ git \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* # Python 로그 즉시 flush (Docker stdout 블록 버퍼링 방지 → HF 로그 실시간 확인) ENV PYTHONUNBUFFERED=1 # 작업 디렉토리 WORKDIR /app # requirements 먼저 복사 (Docker 레이어 캐시 활용) COPY requirements.txt . # pip 최신화 후 패키지 설치 RUN pip install --upgrade pip && \ pip install --no-cache-dir -r requirements.txt # 나머지 소스코드 복사 COPY . . # Hugging Face Spaces는 포트 7860 사용 (필수!) EXPOSE 7860 # HuggingFace 모델 캐시 디렉터리 (appuser 접근 가능) ENV HF_HOME=/app/.cache/huggingface ENV TRANSFORMERS_CACHE=/app/.cache/huggingface RUN mkdir -p /app/.cache/huggingface # 비루트 사용자 (Hugging Face 보안 정책) RUN useradd -m -u 1000 appuser && chown -R appuser /app USER appuser # 서버 실행 CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]