ARG CUDA_IMAGE="12.9.0-devel-ubuntu24.04"
FROM nvidia/cuda:${CUDA_IMAGE}
ENV PYTHONUNBUFFERED=1

RUN apt-get update && apt-get upgrade -y \
    && apt-get install -y git build-essential \
    python3 python3-pip gcc wget \
    ocl-icd-opencl-dev opencl-headers clinfo \
    libclblast-dev libopenblas-dev \
    && mkdir -p /etc/OpenCL/vendors \
    && echo "libnvidia-opencl.so.1" > /etc/OpenCL/vendors/nvidia.icd

ENV CUDA_DOCKER_ARCH=all
ENV GGML_CUDA=1

RUN apt install -y rsync sox ffmpeg python3.12-venv cmake

RUN python3 -m venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"

RUN pip install chatterbox-tts openai-whisper pytorch-lightning

WORKDIR /usr/local/src
RUN git clone https://github.com/rhasspy/piper.git
WORKDIR /usr/local/src/piper/src/python
RUN sed -i 's/piper-phonemize~=1.1.0/piper-phonemize~=2023.11.14-4/' requirements.txt
RUN git checkout 2023.11.14-2
RUN pip install --upgrade wheel setuptools
#RUN pip install -e .
RUN pip install piper-phonemize-fix onnxruntime-gpu pytorch-lightning==1.9.3 \
    cython --no-deps numpy -e .
RUN pip install "torch<2.6.0" # https://github.com/rhasspy/piper/issues/718
RUN ./build_monotonic_align.sh

WORKDIR /app
# used by ./docker-wrapper for writable xgd/home dir when run with --user $UID
RUN mkdir -p /home/user
ARG UID
RUN chown $UID -R /home/user
ENV HOME=/home/user
ENV HF_HOME=/app/.cache/huggingface
ENV NUMBA_CACHE_DIR=/app/.cache/numba_cache
ENV XDG_CACHE_HOME=/app/.cache
ENV CUDA_LAUNCH_BLOCKING=1
ENV TORCH_CPP_LOG_LEVEL=ERROR
ENV TQDM_DISABLE=1
