Files
rocm-chatterbox-whisper/Dockerfile.rocm
scott de6156a336
All checks were successful
Build ROCm Image / build (push) Successful in 17m32s
Replace resemble-perth with a no-op stub
resemble-perth uses uv-build which is incompatible with the old system
pip in the ROCm base image. Since watermarking is unnecessary for
self-hosted private use, stub out the perth module so chatterbox's
import is satisfied without any build complexity.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 11:16:08 -04:00

51 lines
1.4 KiB
Docker

FROM rocm/dev-ubuntu-22.04:latest
ENV DEBIAN_FRONTEND=noninteractive \
PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
HF_HOME=/app/hf_cache \
PIP_NO_CACHE_DIR=1
RUN apt-get update && apt-get install -y --no-install-recommends \
python3 \
python3-pip \
python3-dev \
git \
ffmpeg \
libsndfile1 \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY perth_stub.py .
# Step 1: Install ROCm-compatible PyTorch stack first.
# This must happen before anything else to prevent pip from pulling CPU wheels.
COPY requirements-rocm-init.txt .
RUN pip3 install -r requirements-rocm-init.txt
# Step 2: Install remaining dependencies (pinned to avoid overwriting torch).
COPY requirements-rocm.txt .
RUN pip3 install -r requirements-rocm.txt
# Step 3: Install chatterbox with --no-deps so pip cannot replace ROCm torch.
RUN pip3 install --no-deps chatterbox-tts
# Stub out resemble-perth (audio watermarking, unnecessary for self-hosted use).
# Install as 'perth' module to satisfy chatterbox's import.
RUN python3 -c "import site; print(site.getsitepackages()[0])" | \
xargs -I{} cp /app/perth_stub.py {}/perth.py
# Application source
COPY engine.py config.py wyoming_handler.py wyoming_voices.py main.py ./
# Default config (can be overridden by volume mount)
COPY config.yaml .
# Create default directories
RUN mkdir -p voices reference_audio hf_cache
EXPOSE 10200
CMD ["python3", "main.py"]