ARG VLLM_BASE_IMAGE=vllm/vllm-openai ARG VLLM_BASE_TAG=v0.15.0 FROM ${VLLM_BASE_IMAGE}:${VLLM_BASE_TAG} ARG APP_DIR=/workspace/vllm-omni WORKDIR ${APP_DIR} COPY . . # Install system dependencies RUN apt-get update && \ apt-get install -y ffmpeg sox libsox-fmt-all && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* # Install vLLM wheel for the specific commit # URL format: https://wheels.vllm.ai// # Current vLLM wheel commit: d5fe3f702c2f4392515cdfde6fd0442271c74dda # Note: --prerelease=allow is required because nightly/commit wheels use # pre-release version numbers (e.g. 2.10.0.dev...) which uv ignores by default, # causing it to fall back to the older stable release from PyPI. RUN uv pip install --system --upgrade --force-reinstall --prerelease=allow vllm --extra-index-url https://wheels.vllm.ai/d5fe3f702c2f4392515cdfde6fd0442271c74dda RUN uv pip uninstall --system nvidia-cublas-cu12 # Install vllm-omni into the same uv-managed Python environment used by the base image. # Use bash -c so that $(python3 -c ...) is expanded inside the container. RUN uv pip install --system --no-cache-dir ".[dev]" # pplx_kernels is optional; the base image may already ship a version. # Reinstall attempt may fail if no compatible wheel exists for the current # PyTorch/CUDA combination – allow the build to continue regardless. RUN pip install --upgrade --force-reinstall "pplx_kernels" || true RUN /bin/bash -c 'FLASHINFER_CUDA_TAG="$(python3 -c "import torch; print((torch.version.cuda or \"12.4\").replace(\".\", \"\"))")" && \ uv pip install --system --upgrade --force-reinstall \ "flashinfer-python==0.6.3" \ "flashinfer-cubin==0.6.3" \ "flashinfer-jit-cache==0.6.3" \ --extra-index-url "https://flashinfer.ai/whl/cu${FLASHINFER_CUDA_TAG}"' # Pin nvidia-cublas-cu12 after vllm-omni install so dependency resolution does not overwrite it RUN uv pip install --system --upgrade --force-reinstall "nvidia-cublas-cu12==12.9.1.4" RUN uv pip install --system --upgrade --force-reinstall "numpy==2.2.6" RUN ln -sf /usr/bin/python3 /usr/bin/python ENTRYPOINT []