FROM nvidia/cuda:12.8.1-base-ubuntu22.04 AS base

ARG DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y \
    python3.10 python3-pip openmpi-bin libopenmpi-dev git git-lfs wget \
    && apt install python-is-python3 \
    && pip install --upgrade pip setuptools \
    && rm -rf /var/lib/apt/lists/*

FROM base AS devel
RUN pip install --no-cache-dir -U tensorrt_llm==0.18.2 --extra-index-url https://pypi.nvidia.com
WORKDIR /app
RUN git clone -b v0.18.2 https://github.com/NVIDIA/TensorRT-LLM.git \
    && mv TensorRT-LLM/examples ./TensorRT-LLM-examples \
    && rm -rf TensorRT-LLM

FROM devel AS release
WORKDIR /app
COPY assets/ ./assets
RUN wget -nc -P assets/ https://raw.githubusercontent.com/openai/whisper/main/whisper/assets/mel_filters.npz

COPY scripts/setup.sh ./
RUN apt update && bash setup.sh && rm setup.sh

COPY requirements/server.txt .
RUN pip install --no-cache-dir -r server.txt && rm server.txt
COPY whisper_live ./whisper_live
COPY scripts/build_whisper_tensorrt.sh .
COPY run_server.py .