# Python 3.9-slim 이미지를 기반으로 합니다. FROM python:3.9-slim # non-root 사용자를 생성하고 사용합니다. RUN useradd -m -u 1000 appuser USER appuser ENV PATH="/home/appuser/.local/bin:${PATH}" WORKDIR /app # 의존성 파일(requirements.txt)을 복사합니다. COPY --chown=appuser ./requirements.txt requirements.txt # Python 의존성을 설치합니다. RUN pip install --no-cache-dir --upgrade -r requirements.txt # 애플리케이션 코드 전체를 복사합니다 (main.py, index.html, style.css, script.js). COPY --chown=appuser . . # 위 COPY . . 은 현재 Docker 빌드 컨텍스트(로컬의 프로젝트 루트)의 모든 내용을 # 컨테이너의 WORKDIR(/app)로 복사합니다. # 애플리케이션이 수신 대기할 포트를 Docker에 알립니다. # Hugging Face Spaces는 이 포트(7860)로 트래픽을 전달합니다. EXPOSE 7860 # 컨테이너가 시작될 때 실행할 명령입니다. # main.py 파일에 정의된 app 객체를 실행합니다. # 포트 7860으로 모든 인터페이스에서 수신 대기합니다. CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]