mirror of
https://github.com/remsky/Kokoro-FastAPI.git
synced 2025-04-13 09:39:17 +00:00
Update Dockerfile to build against newer code
This commit is contained in:
parent
1d017554fe
commit
aba262844c
3 changed files with 33 additions and 71 deletions
|
@ -1,64 +1,50 @@
|
|||
FROM rocm/dev-ubuntu-22.04:6.3.1
|
||||
FROM rocm/pytorch:rocm6.3.4_ubuntu22.04_py3.10_pytorch_release_2.4.0
|
||||
ENV DEBIAN_FRONTEND=noninteractive \
|
||||
PHONEMIZER_ESPEAK_PATH=/usr/bin \
|
||||
PHONEMIZER_ESPEAK_DATA=/usr/share/espeak-ng-data \
|
||||
ESPEAK_DATA_PATH=/usr/share/espeak-ng-data
|
||||
|
||||
# Install Python and other dependencies
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
python3.10 \
|
||||
python3.10-venv \
|
||||
RUN apt-get update && apt upgrade -y && apt-get install -y --no-install-recommends \
|
||||
espeak-ng \
|
||||
espeak-ng-data \
|
||||
git \
|
||||
libsndfile1 \
|
||||
curl \
|
||||
ffmpeg \
|
||||
wget \
|
||||
nano \
|
||||
g++ \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& mkdir -p /usr/share/espeak-ng-data \
|
||||
&& ln -s /usr/lib/*/espeak-ng-data/* /usr/share/espeak-ng-data/
|
||||
|
||||
# Install uv
|
||||
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
||||
|
||||
# Create non-root user
|
||||
RUN useradd -m -u 1000 appuser
|
||||
|
||||
# Create directories and set ownership
|
||||
RUN mkdir -p /app/models && \
|
||||
mkdir -p /app/api/src/voices && \
|
||||
chown -R appuser:appuser /app
|
||||
|
||||
USER appuser
|
||||
|
||||
# Download and extract models
|
||||
WORKDIR /app/models
|
||||
RUN curl -L -o model.tar.gz https://github.com/remsky/Kokoro-FastAPI/releases/download/v0.0.1/kokoro-82m-pytorch.tar.gz && \
|
||||
tar xzf model.tar.gz && \
|
||||
rm model.tar.gz
|
||||
|
||||
# Download and extract voice models
|
||||
WORKDIR /app/api/src/voices
|
||||
RUN curl -L -o voices.tar.gz https://github.com/remsky/Kokoro-FastAPI/releases/download/v0.0.1/voice-models.tar.gz && \
|
||||
tar xzf voices.tar.gz && \
|
||||
rm voices.tar.gz
|
||||
|
||||
# Switch back to app directory
|
||||
RUN mkdir -p /app/api/src/models/v1_0
|
||||
WORKDIR /app
|
||||
|
||||
# Copy dependency files
|
||||
COPY --chown=appuser:appuser pyproject.toml ./pyproject.toml
|
||||
COPY pyproject.toml ./pyproject.toml
|
||||
|
||||
# Install dependencies
|
||||
RUN --mount=type=cache,target=/root/.cache/uv \
|
||||
uv venv && \
|
||||
uv sync --extra rocm --no-install-project
|
||||
RUN pip3 install -e .
|
||||
|
||||
# Copy project files
|
||||
# Copy project files including models
|
||||
COPY --chown=appuser:appuser api ./api
|
||||
|
||||
# Install project
|
||||
RUN --mount=type=cache,target=/root/.cache/uv \
|
||||
uv sync --extra rocm
|
||||
COPY --chown=appuser:appuser web ./web
|
||||
COPY --chown=appuser:appuser docker/scripts/ ./
|
||||
RUN chmod +x ./entrypoint.sh
|
||||
|
||||
# Set environment variables
|
||||
ENV PYTHONUNBUFFERED=1
|
||||
ENV PYTHONPATH=/app:/app/models
|
||||
ENV PATH="/app/.venv/bin:$PATH"
|
||||
ENV UV_LINK_MODE=copy
|
||||
ENV PYTHONUNBUFFERED=1 \
|
||||
PYTHONPATH=/app:/app/api \
|
||||
USE_GPU=true \
|
||||
DOWNLOAD_MODEL=true
|
||||
|
||||
# Run FastAPI server
|
||||
CMD ["uv", "run", "python", "-m", "uvicorn", "api.src.main:app", "--host", "0.0.0.0", "--port", "8880", "--log-level", "debug"]
|
||||
# Download model if enabled
|
||||
RUN if [ "$DOWNLOAD_MODEL" = "true" ]; then \
|
||||
python download_model.py --output api/src/models/v1_0; \
|
||||
fi
|
||||
|
||||
# Run FastAPI server through entrypoint.sh
|
||||
CMD ["python3", "-m", "uvicorn", "api.src.main:app", "--host", "0.0.0.0", "--port", "8880", "--log-level", "debug"]
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
[project]
|
||||
name = "kokoro-fastapi-rocm"
|
||||
version = "0.1.0"
|
||||
description = "FastAPI TTS Service - ROCM Version"
|
||||
readme = "../README.md"
|
||||
requires-python = ">=3.10"
|
||||
dependencies = [
|
||||
# Core ML/DL for rocm
|
||||
"pytorch-triton-rocm==3.1.0",
|
||||
"torch==2.5.1+rocm6.2",
|
||||
"transformers==4.47.1",
|
||||
]
|
||||
|
||||
[tool.uv.workspace]
|
||||
members = ["../shared"]
|
||||
|
||||
[tool.uv.sources]
|
||||
torch = { index = "pytorch-rocm" }
|
||||
pytorch-triton-rocm = { index = "pytorch-rocm" }
|
||||
|
||||
[[tool.uv.index]]
|
||||
name = "pytorch-rocm"
|
||||
url = "https://download.pytorch.org/whl/rocm6.2"
|
||||
explicit = true
|
|
@ -32,7 +32,7 @@ dependencies = [
|
|||
"mutagen>=1.47.0",
|
||||
"psutil>=6.1.1",
|
||||
"kokoro @ git+https://github.com/hexgrad/kokoro.git@31a2b6337b8c1b1418ef68c48142328f640da938",
|
||||
'misaki[en,ja,ko,zh] @ git+https://github.com/hexgrad/misaki.git@ebc76c21b66c5fc4866ed0ec234047177b396170',
|
||||
'misaki[en,ja,ko,zh]',
|
||||
"spacy==3.7.2",
|
||||
"en-core-web-sm @ https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.7.1/en_core_web_sm-3.7.1-py3-none-any.whl",
|
||||
"inflect>=7.5.0",
|
||||
|
|
Loading…
Add table
Reference in a new issue