# Audio Studio MusicGen - GPU Dockerfile FROM nvidia/cuda:12.4.1-devel-ubuntu22.04 # 환경 변수 ENV PYTHONUNBUFFERED=1 ENV DEBIAN_FRONTEND=noninteractive ENV CUDA_HOME=/usr/local/cuda ENV PATH="${CUDA_HOME}/bin:${PATH}" ENV LD_LIBRARY_PATH="${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}" # 시스템 패키지 설치 RUN apt-get update && apt-get install -y --no-install-recommends \ python3.11 \ python3.11-dev \ python3-pip \ git \ curl \ libsndfile1 \ ffmpeg \ && rm -rf /var/lib/apt/lists/* # Python 심볼릭 링크 RUN ln -sf /usr/bin/python3.11 /usr/bin/python && \ ln -sf /usr/bin/python3.11 /usr/bin/python3 # pip 업그레이드 RUN python -m pip install --upgrade pip setuptools wheel # 작업 디렉토리 WORKDIR /app # 의존성 설치 (캐시 활용) COPY requirements.txt . # PyTorch + CUDA 설치 RUN pip install --no-cache-dir torch torchaudio --index-url https://download.pytorch.org/whl/cu124 # AudioCraft 설치 RUN pip install --no-cache-dir audiocraft # 나머지 의존성 설치 RUN pip install --no-cache-dir -r requirements.txt # 소스 코드 복사 COPY app/ ./app/ # 포트 노출 EXPOSE 8002 # 헬스체크 HEALTHCHECK --interval=30s --timeout=30s --start-period=120s --retries=3 \ CMD curl -f http://localhost:8002/health || exit 1 # 서버 실행 CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8002"]