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 # Install uv and expose its bundled binary so pip isolated build environments # can find it when building packages that use uv-build (e.g. resemble-perth). RUN pip3 install uv && \ ln -sf "$(python3 -c 'import uv; print(uv.find_uv_bin())')" /usr/local/bin/uv # 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 # 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"]