|
|
|
|
|
|
|
|
FROM python:3.12-slim |
|
|
|
|
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive |
|
|
ENV PYTHONUNBUFFERED=1 |
|
|
ENV PORT=7860 |
|
|
ENV HOST=0.0.0.0 |
|
|
|
|
|
|
|
|
RUN apt-get update && apt-get install -y \ |
|
|
wget \ |
|
|
curl \ |
|
|
git \ |
|
|
build-essential \ |
|
|
libsndfile1 \ |
|
|
ffmpeg \ |
|
|
&& rm -rf /var/lib/apt/lists/* |
|
|
|
|
|
|
|
|
WORKDIR /app |
|
|
|
|
|
|
|
|
|
|
|
RUN pip install --no-cache-dir --upgrade pip |
|
|
|
|
|
|
|
|
RUN pip install --no-cache-dir torch torchaudio --index-url https://download.pytorch.org/whl/cu124 |
|
|
|
|
|
|
|
|
RUN pip install --no-cache-dir \ |
|
|
|
|
|
fastapi \ |
|
|
uvicorn[standard] \ |
|
|
websockets \ |
|
|
loguru \ |
|
|
python-multipart \ |
|
|
|
|
|
numpy \ |
|
|
librosa \ |
|
|
soundfile \ |
|
|
|
|
|
"sphn<0.2" \ |
|
|
"moshi==0.2.8" \ |
|
|
"sentencepiece" |
|
|
|
|
|
|
|
|
RUN mkdir -p /app/logs |
|
|
|
|
|
|
|
|
COPY . . |
|
|
|
|
|
|
|
|
EXPOSE 7860 |
|
|
|
|
|
|
|
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=180s --retries=3 \ |
|
|
CMD curl -f http://localhost:7860/health || exit 1 |
|
|
|
|
|
|
|
|
CMD ["python", "app.py"] |