48 lines
1.7 KiB
Docker
48 lines
1.7 KiB
Docker
ARG VLLM_BASE_IMAGE=vllm/vllm-openai
|
|
ARG VLLM_BASE_TAG=v0.14.0
|
|
FROM ${VLLM_BASE_IMAGE}:${VLLM_BASE_TAG}
|
|
|
|
ARG APP_DIR=/workspace/vllm-omni
|
|
WORKDIR ${APP_DIR}
|
|
|
|
# System deps
|
|
RUN apt-get update && \
|
|
apt-get install -y ffmpeg git && \
|
|
apt-get clean && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# Copy after system deps (optional, but keeps layers cleaner)
|
|
COPY . .
|
|
|
|
# ---- 1) Install vLLM nightly FIRST (remove pinned vLLM from base image) ----
|
|
# Provide ONE of these at build time:
|
|
# - VLLM_NIGHTLY_INDEX_URL (preferred) OR
|
|
# - VLLM_WHEEL_URL (explicit wheel)
|
|
ARG VLLM_NIGHTLY_INDEX_URL=
|
|
ARG VLLM_WHEEL_URL=
|
|
ARG VLLM_GIT_REF=706f123b23b75097da9a3f51ce538bd784fdc75b
|
|
|
|
RUN set -eux; \
|
|
PY="$(python3 -c 'import sys; print(sys.executable)')"; \
|
|
uv pip uninstall --python "$PY" vllm || true; \
|
|
if [ -n "$VLLM_WHEEL_URL" ]; then \
|
|
uv pip install --python "$PY" --no-cache-dir "$VLLM_WHEEL_URL"; \
|
|
elif [ -n "$VLLM_NIGHTLY_INDEX_URL" ]; then \
|
|
uv pip install --python "$PY" --no-cache-dir -U --pre \
|
|
--extra-index-url "$VLLM_NIGHTLY_INDEX_URL" \
|
|
vllm; \
|
|
elif [ -n "$VLLM_GIT_REF" ]; then \
|
|
uv pip install --python "$PY" --no-cache-dir \
|
|
"vllm @ git+https://github.com/vllm-project/vllm.git@${VLLM_GIT_REF}"; \
|
|
else \
|
|
echo "ERROR: set VLLM_WHEEL_URL, VLLM_NIGHTLY_INDEX_URL, or VLLM_GIT_REF"; \
|
|
exit 1; \
|
|
fi; \
|
|
python3 -c "import vllm; print('vllm installed:', getattr(vllm,'__version__','<unknown>'))"
|
|
|
|
# ---- 2) THEN install your package into the same env ----
|
|
RUN uv pip install --python "$(python3 -c 'import sys; print(sys.executable)')" --no-cache-dir ".[dev]"
|
|
|
|
RUN ln -sf /usr/bin/python3 /usr/bin/python
|
|
ENTRYPOINT []
|