Spaces:
Sleeping
Sleeping
| # syntax=docker/dockerfile:1 | |
| FROM python:3.11-slim | |
| # ---- Runtime deps for onnxruntime ---- | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| curl ca-certificates libgomp1 \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # ---- Install uv (Astral) ---- | |
| RUN curl -LsSf https://astral.sh/uv/install.sh | sh | |
| ENV PATH="/root/.local/bin:${PATH}" | |
| WORKDIR /app | |
| # ---- App deps (cached) ---- | |
| COPY pyproject.toml README.md ./ | |
| RUN uv sync --no-dev | |
| # ---- App code ---- | |
| COPY app.py ./ | |
| COPY static ./static | |
| COPY clients ./clients | |
| # ---- Models ---- | |
| # Set where the app expects the files | |
| ENV KOKORO_MODEL=/app/models/kokoro-v1.0.int8.onnx \ | |
| KOKORO_VOICES=/app/models/voices-v1.0.bin | |
| # Option 1: auto-download at build (default ON). Disable with: --build-arg DOWNLOAD_MODELS=0 | |
| ARG DOWNLOAD_MODELS=1 | |
| RUN mkdir -p /app/models && \ | |
| if [ "$DOWNLOAD_MODELS" = "1" ]; then \ | |
| echo "Downloading Kokoro model & voices..." && \ | |
| curl -L -o "${KOKORO_MODEL}" "https://github.com/thewh1teagle/kokoro-onnx/releases/download/model-files-v1.0/kokoro-v1.0.int8.onnx" && \ | |
| curl -L -o "${KOKORO_VOICES}" "https://github.com/thewh1teagle/kokoro-onnx/releases/download/model-files-v1.0/voices-v1.0.bin"; \ | |
| else \ | |
| echo "Skipping model download. Mount or COPY models into /app/models"; \ | |
| fi | |
| # Option 2 (alternative): if you keep models/ next to Dockerfile, uncomment below | |
| # COPY ./models ./models | |
| EXPOSE 8000 | |
| CMD ["uv", "run", "uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000"] | |