1+ # hadolint global ignore=DL3008,DL3059
2+
3+ ARG UBUNTU_VERSION=24.04
4+ ARG CUDA_VERSION=13.0.0
5+ ARG DEVEL_BASE_IMAGE=docker.io/nvidia/cuda:${CUDA_VERSION}-cudnn-devel-ubuntu${UBUNTU_VERSION}
6+
7+ FROM ${DEVEL_BASE_IMAGE} AS build
8+
9+ WORKDIR /opt
10+
11+ ENV DEBIAN_FRONTEND=noninteractive
12+ ENV CUDA_HOME=/usr/local/cuda
13+ ENV PATH=/opt/venv/bin:/usr/local/cuda/bin:$PATH
14+ ENV LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
15+ ENV VLLM_USE_DEEP_GEMM=0
16+ ENV TORCHDYNAMO_DISABLE=1
17+ ENV UV_LINK_MODE=copy
18+
19+ RUN apt-get update && apt-get install -y --no-install-recommends \
20+ python3.12 \
21+ python3.12-dev \
22+ python3.12-venv \
23+ python3-pip \
24+ build-essential \
25+ git \
26+ curl \
27+ ca-certificates \
28+ cmake \
29+ ninja-build \
30+ ffmpeg \
31+ libsndfile1 \
32+ && rm -rf /var/lib/apt/lists/*
33+
34+ RUN python3.12 -m venv /opt/venv && \
35+ python -m pip install --upgrade --no-cache-dir \
36+ pip==26.1.1 \
37+ wheel==0.47.0 \
38+ packaging==26.2 \
39+ setuptools==69.5.1 \
40+ ninja==1.13.0 \
41+ uv==0.11.7
42+
43+ # Install vLLM CUDA13 stack.
44+ RUN uv pip install --python /opt/venv/bin/python vllm==0.20.2 --torch-backend=auto
45+
46+ # Install vLLM-Omni and Qwen3-TTS runtime deps.
47+ RUN uv pip install --python /opt/venv/bin/python \
48+ vllm-omni==0.20.0 \
49+ transformers==5.8.0 \
50+ gradio==6.14.0 \
51+ gradio-client==2.5.0 \
52+ soundfile==0.13.1 \
53+ pydub==0.25.1 \
54+ librosa==0.11.0 \
55+ requests==2.34.2 \
56+ numpy==2.3.5
57+
58+ # Sanity check.
59+ RUN python - <<'PY'
60+ from pathlib import Path
61+ import torch
62+ import vllm
63+ import vllm_omni
64+ import transformers
65+ import soundfile
66+ from vllm.entrypoints.openai.realtime.serving import OpenAIServingRealtime
67+
68+ root = Path(vllm_omni.__file__).resolve().parent
69+ matches = list(root.rglob("qwen3_tts.yaml" ))
70+
71+ print("torch:" , torch.__version__)
72+ print("cuda:" , torch.version.cuda)
73+ print("cuda available:" , torch.cuda.is_available())
74+ print("vllm:" , vllm.__version__)
75+ print("transformers:" , transformers.__version__)
76+ print("vllm_omni:" , vllm_omni.__file__)
77+ print("realtime import OK" )
78+ print("qwen3_tts.yaml:" , matches[0] if matches else "NOT FOUND" )
79+
80+ if not matches:
81+ raise RuntimeError("qwen3_tts.yaml not found" )
82+ PY
83+
84+ WORKDIR /opt
0 commit comments