2025-12-04 23:23:22 +08:00
ARG VLLM_BASE_IMAGE = vllm/vllm-openai
2026-02-03 12:24:45 +08:00
ARG VLLM_BASE_TAG = v0.15.0
2025-12-04 23:23:22 +08:00
FROM ${VLLM_BASE_IMAGE}:${VLLM_BASE_TAG }
ARG APP_DIR = /workspace/vllm-omni
WORKDIR ${APP_DIR }
2026-02-03 13:43:45 +08:00
2025-12-04 23:23:22 +08:00
COPY . .
2026-02-03 13:43:45 +08:00
2026-01-16 21:16:43 +08:00
# Install system dependencies
RUN apt-get update && \
2026-02-10 03:33:39 -05:00
apt-get install -y ffmpeg sox libsox-fmt-all && \
2026-02-03 13:43:45 +08:00
apt-get clean && \
rm -rf /var/lib/apt/lists/*
2026-01-16 21:16:43 +08:00
2026-02-05 10:52:28 +00:00
# Install vLLM wheel for the specific commit
# URL format: https://wheels.vllm.ai/<commit_hash>/
2026-02-09 08:09:21 +00:00
# Current vLLM commit: f97ca671766c5201404e9fc812e35bf2c4e95a01
2026-02-09 10:01:39 +00:00
# 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.
2026-02-11 02:43:49 +00:00
RUN uv pip install --system --upgrade --force-reinstall --prerelease= allow vllm --extra-index-url https://wheels.vllm.ai/4a1550d22d7058e129d0e1257e726b3bf4a77025
2026-02-05 10:52:28 +00:00
2026-02-10 02:17:00 +00:00
# Keep flashinfer runtime packages in version sync.
2026-02-11 04:34:52 +00:00
# We derive the version from installed flashinfer (pulled by vllm)
2026-02-10 02:17:00 +00:00
# and enforce the same version for flashinfer-cubin / flashinfer-jit-cache.
2026-02-11 04:34:52 +00:00
RUN FLASHINFER_VERSION = " $( python3 -c 'import importlib.metadata as m; print(next(m.version(n) for n in ("flashinfer","flashinfer-python") if m.packages_distributions().get(n)))' ) " && \
2026-02-11 04:11:11 +00:00
FLASHINFER_CUDA_TAG = " $( python3 -c 'import torch; print((torch.version.cuda or "12.4").replace(".", ""))' ) " && \
uv pip install --system --upgrade --force-reinstall \
"flashinfer-cubin== ${ FLASHINFER_VERSION } " \
"flashinfer-jit-cache== ${ FLASHINFER_VERSION } " \
--extra-index-url "https://flashinfer.ai/whl/cu ${ FLASHINFER_CUDA_TAG } " && \
flashinfer show-config
2026-02-10 02:17:00 +00:00
2025-12-04 23:23:22 +08:00
# Install vllm-omni into the same uv-managed Python environment used by the base image.
2026-02-03 13:43:45 +08:00
RUN uv pip install --python " $( python3 -c 'import sys; print(sys.executable)' ) " --no-cache-dir ".[dev]"
2025-12-04 23:23:22 +08:00
RUN ln -sf /usr/bin/python3 /usr/bin/python
2026-02-03 13:43:45 +08:00
2025-12-04 23:23:22 +08:00
ENTRYPOINT []