Skip to content
Merged
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
d925032
Add mising dependencies into slim runtime container
nv-tusharma May 8, 2025
b6faf9c
Remove extra whitespace
nv-tusharma May 13, 2025
68b0ef5
Merge branch 'main' into tusharma/slim-runtime-vllm-build
nv-tusharma May 13, 2025
c60cb15
Move etcd command after the etcd folder is copied over
nv-tusharma May 13, 2025
3dc9580
Change ucx directory to align with recent changes
nv-tusharma May 13, 2025
c5f5813
Merge branch 'main' into tusharma/slim-runtime-vllm-build
nv-tusharma May 15, 2025
6b30373
Merge branch 'main' into tusharma/slim-runtime-vllm-build
nv-tusharma May 16, 2025
0a690ea
Remove --no-index as argument isn't required for installing nixl
nv-tusharma May 16, 2025
211dd20
Install common dependencies as part of requirements.txt
nv-tusharma May 16, 2025
0fe5b94
Add common requirements to vllm container
nv-tusharma May 16, 2025
4774c07
Revert "Add common requirements to vllm container"
nv-tusharma May 16, 2025
89d9533
Install common dependencies seperately from dynamo & vllm installation
nv-tusharma May 16, 2025
0c8dfc0
nit: remove requirements.txt installation from dynamo install step
nv-tusharma May 16, 2025
f883885
Merge branch 'main' into tusharma/slim-runtime-vllm-build
nv-tusharma May 19, 2025
17d9555
Copy ucx plugin into final runtime image
nv-tusharma May 19, 2025
cd509c5
Install build-essential to unblock disagg deployments
nv-tusharma May 20, 2025
e426ab9
Merge branch 'main' into tusharma/slim-runtime-vllm-build
nv-tusharma May 20, 2025
b898f30
Merge branch 'main' into tusharma/slim-runtime-vllm-build
nv-tusharma May 20, 2025
4384dfa
Merge branch 'main' into tusharma/slim-runtime-vllm-build
nv-tusharma May 20, 2025
9a3cec3
Merge branch 'main' into tusharma/slim-runtime-vllm-build
nv-tusharma May 21, 2025
f9ed4f8
Remove ref to ucx_path and add nixl plugins to LD_LIBRARY_PATH in rt …
nv-tusharma May 22, 2025
846ee1a
Merge branch 'main' into tusharma/slim-runtime-vllm-build
nv-tusharma May 22, 2025
e4a3406
Add NIXL plugins to ldconfig instead of setting LD_LIBRARY_PATH
nv-tusharma May 23, 2025
f6f09ef
Re-add VIRTUAL_ENV to path
nv-tusharma May 23, 2025
0b11d64
Copy NIXL wheel + point LD_LIBRARY_PATH to C++ bindings instead of py…
nv-tusharma May 27, 2025
2c6333c
Merge branch 'main' into tusharma/slim-runtime-vllm-build
nv-tusharma May 28, 2025
77cc9ff
nit: minor suggestions to improve vllm dockerfiles
nv-tusharma May 28, 2025
9cdc46b
nit: minor dockerfile syntax fix
nv-tusharma May 28, 2025
5bd4957
Merge branch 'main' into tusharma/slim-runtime-vllm-build
nv-tusharma May 28, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 38 additions & 6 deletions container/Dockerfile.vllm
Original file line number Diff line number Diff line change
Expand Up @@ -154,11 +154,16 @@ ENV PATH="${VIRTUAL_ENV}/bin:${PATH}"
# Install NIXL Python module
# TODO: Move gds_path selection based on arch into NIXL build
RUN if [ "$ARCH" = "arm64" ]; then \
cd /opt/nixl && uv pip install . --config-settings=setup-args="-Dgds_path=/usr/local/cuda/targets/sbsa-linux"; \
cd /opt/nixl && uv build . --out-dir /workspace/wheels/nixl \
--config-settings=setup-args="-Dgds_path=/usr/local/cuda/targets/sbsa-linux"; \
else \
cd /opt/nixl && uv pip install . ; \
cd /opt/nixl && uv build . --out-dir /workspace/wheels/nixl; \
fi

# Install the wheel
# TODO: Move NIXL wheel install to the wheel_builder stage
RUN uv pip install /workspace/wheels/nixl/*.whl

# Install patched vllm - keep this early in Dockerfile to avoid
# rebuilds from unrelated source code changes
ARG VLLM_REF="0.8.4"
Expand Down Expand Up @@ -462,18 +467,45 @@ ENV DYNAMO_HOME=/workspace
ENV VIRTUAL_ENV=/opt/dynamo/venv
ENV PATH="${VIRTUAL_ENV}/bin:${PATH}"

# Install build-essential and python3-dev as apt dependencies
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
build-essential \
python3-dev && \
rm -rf /var/lib/apt/lists/*

### COPY BINDINGS ###
# Copy all bindings (wheels, lib, include) from ci_minimum
COPY --from=ci_minimum /opt/dynamo/bindings /opt/dynamo/bindings
### COPY NATS & ETCD ###
# Copy nats and etcd from base image
COPY --from=base /usr/bin/nats-server /usr/bin/nats-server
COPY --from=base /usr/local/bin/etcd/ /usr/local/bin/etcd/

# Copy UCX from base image as plugin for NIXL
# Copy NIXL source from base image (required for NIXL plugins)
COPY --from=base /usr/local/ucx /usr/local/ucx
COPY --from=base /usr/local/nixl /usr/local/nixl
ARG ARCH_ALT
ENV NIXL_PLUGIN_DIR=/usr/local/nixl/lib/${ARCH_ALT}-linux-gnu/plugins
ENV LD_LIBRARY_PATH=/usr/local/nixl/lib/${ARCH_ALT}-linux-gnu:/usr/local/nixl/lib/${ARCH_ALT}-linux-gnu/plugins:/usr/local/ucx/lib:$LD_LIBRARY_PATH

# Setup the python environment
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends python3-dev && \
rm -rf /var/lib/apt/lists/* && \
uv venv $VIRTUAL_ENV --python 3.12 && \
RUN uv venv $VIRTUAL_ENV --python 3.12 && \
echo "source $VIRTUAL_ENV/bin/activate" >> ~/.bashrc

# Common dependencies
RUN --mount=type=bind,source=./container/deps/requirements.txt,target=/tmp/requirements.txt \
uv pip install --requirement /tmp/requirements.txt

# Install the wheels and symlink executables to /usr/local/bin so dynamo components can use them
# Dynamo components currently do not have the VIRTUAL_ENV in their PATH, so we need to symlink the executables
#Copy NIXL and Dynamo wheels into wheelhouse
COPY --from=base /workspace/wheels/nixl/*.whl wheelhouse/
COPY --from=wheel_builder /workspace/dist/*.whl wheelhouse/
RUN uv pip install ai-dynamo[vllm] --find-links wheelhouse && \
uv pip install nixl --find-links wheelhouse && \
ln -sf $VIRTUAL_ENV/bin/* /usr/local/bin/ && \
rm -r wheelhouse

Expand Down
Loading