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