40 lines
1.5 KiB
Docker
40 lines
1.5 KiB
Docker
ARG VLLM_BASE_IMAGE=vllm/vllm-openai
|
|
ARG VLLM_BASE_TAG=v0.17.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 espeak-ng ffmpeg git sox libsox-fmt-all jq && \
|
|
apt-get clean && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN uv pip uninstall --system -y vllm || true
|
|
|
|
# Install vLLM from precompiled wheel at the selected commit.
|
|
# Must use direct URL because the wheel has a PEP 440 local version identifier
|
|
# (e.g. +g0a0a1a198) which pip/uv refuse to install from a PEP 503 package index.
|
|
ENV VLLM_PRECOMPILED_WHEEL_COMMIT=89138b21cc246ae944c741d5c399c148e2b770ab
|
|
RUN VLLM_WHEEL_URL=$(python3 -c "import urllib.request,re; \
|
|
html=urllib.request.urlopen('https://wheels.vllm.ai/${VLLM_PRECOMPILED_WHEEL_COMMIT}/vllm/').read().decode(); \
|
|
m=re.search(r'>(\S+x86_64\.whl)<',html); \
|
|
print('https://wheels.vllm.ai/${VLLM_PRECOMPILED_WHEEL_COMMIT}/'+m.group(1).replace('+','%2B'))") && \
|
|
echo "Installing vLLM from: ${VLLM_WHEEL_URL}" && \
|
|
uv pip install --system --force-reinstall "${VLLM_WHEEL_URL}"
|
|
|
|
RUN uv pip install --system ".[dev]"
|
|
|
|
RUN uv pip install --system --upgrade \
|
|
"flashinfer-cubin==0.6.6" \
|
|
"nvidia-cublas-cu12==12.9.1.4" \
|
|
"numpy==2.2.6"
|
|
|
|
RUN uv pip install --system --upgrade \
|
|
"flashinfer-jit-cache==0.6.6" \
|
|
--index-url https://flashinfer.ai/whl/cu129
|
|
RUN ln -sf /usr/bin/python3 /usr/bin/python
|
|
|
|
ENTRYPOINT []
|