From d0137efc67bb73d0a55b03b118de8544681c41fe Mon Sep 17 00:00:00 2001 From: Kyle McGill Date: Mon, 1 Dec 2025 11:03:52 -0800 Subject: [PATCH 1/2] fixed assertion in test_build_sh.py --- tests/ci/test_build_sh.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/ci/test_build_sh.py b/tests/ci/test_build_sh.py index c5b183cf9d..bdcab7ca27 100644 --- a/tests/ci/test_build_sh.py +++ b/tests/ci/test_build_sh.py @@ -283,7 +283,7 @@ def test_build_with_git_url_and_commit(self, build_script_path): assert "Intent to Download TRTLLM: false" in stdout assert "Intent to Install TRTLLM: false" in stdout assert "Intent to Build TRTLLM: true" in stdout - assert "TRTLLM pip wheel output directory is: /tmp/trtllm_wheel/" + assert "TRTLLM pip wheel output directory is: /tmp/trtllm_wheel/" in stdout def test_build_with_git_url_and_wheel_dir(self, build_script_path, temp_wheel_dir): """Test build with --tensorrtllm-git-url and --tensorrtllm-pip-wheel-dir""" From 4db6f85bd4f9973bb64324b2a6eb836ef82c65b1 Mon Sep 17 00:00:00 2001 From: Kyle McGill Date: Mon, 1 Dec 2025 11:09:44 -0800 Subject: [PATCH 2/2] moving the DYNAMO_COMMIT_SHA to avoid invalidating the layer cache --- container/Dockerfile | 7 ++++--- container/Dockerfile.sglang | 15 ++++++++------- container/Dockerfile.trtllm | 8 +++++--- container/Dockerfile.vllm | 14 ++++++++------ 4 files changed, 25 insertions(+), 19 deletions(-) diff --git a/container/Dockerfile b/container/Dockerfile index 16f74e62c0..fa10f4fbf7 100644 --- a/container/Dockerfile +++ b/container/Dockerfile @@ -338,9 +338,6 @@ ARG ARCH_ALT ENV DYNAMO_HOME=/opt/dynamo \ CARGO_TARGET_DIR=/opt/dynamo/target -ARG DYNAMO_COMMIT_SHA -ENV DYNAMO_COMMIT_SHA=$DYNAMO_COMMIT_SHA - RUN apt-get update -y \ && apt-get install -y --no-install-recommends \ # required for AIC perf files @@ -427,5 +424,9 @@ RUN chmod 755 /opt/dynamo/.launch_screen && \ USER dynamo +# Set DYNAMO_COMMIT_SHA late to avoid cache invalidation +ARG DYNAMO_COMMIT_SHA +ENV DYNAMO_COMMIT_SHA=$DYNAMO_COMMIT_SHA + ENTRYPOINT ["/opt/nvidia/nvidia_entrypoint.sh"] CMD [] diff --git a/container/Dockerfile.sglang b/container/Dockerfile.sglang index 6f79df17a1..6cca43da2c 100644 --- a/container/Dockerfile.sglang +++ b/container/Dockerfile.sglang @@ -333,10 +333,6 @@ ${NIXL_PLUGIN_DIR}:\ /usr/local/nvidia/lib64:\ ${LD_LIBRARY_PATH} -ARG DYNAMO_COMMIT_SHA -ENV DYNAMO_COMMIT_SHA=$DYNAMO_COMMIT_SHA - - # Copy NATS and ETCD from dynamo_base, and UCX/NIXL COPY --from=dynamo_base /usr/bin/nats-server /usr/bin/nats-server COPY --from=dynamo_base /usr/local/bin/etcd/ /usr/local/bin/etcd/ @@ -387,6 +383,10 @@ COPY --chown=dynamo: deploy /workspace/deploy COPY --chown=dynamo: components/ /workspace/components/ COPY --chown=dynamo: recipes/ /workspace/recipes/ +# Set DYNAMO_COMMIT_SHA late to avoid cache invalidation +ARG DYNAMO_COMMIT_SHA +ENV DYNAMO_COMMIT_SHA=$DYNAMO_COMMIT_SHA + ENTRYPOINT ["/opt/nvidia/nvidia_entrypoint.sh"] CMD [] @@ -408,9 +408,6 @@ FROM runtime AS dev ARG WORKSPACE_DIR=/sgl-workspace/dynamo ARG PYTHON_VERSION -ARG DYNAMO_COMMIT_SHA -ENV DYNAMO_COMMIT_SHA=$DYNAMO_COMMIT_SHA - # NOTE: SGLang uses system Python (not a virtualenv in framework/runtime stages) to align with # upstream SGLang Dockerfile: https://github.com/sgl-project/sglang/blob/main/docker/Dockerfile # For dev stage, we create a lightweight venv with --system-site-packages to satisfy maturin develop @@ -498,5 +495,9 @@ RUN python3 -m pip install --no-cache-dir \ matplotlib \ tabulate +# Set DYNAMO_COMMIT_SHA late to avoid cache invalidation +ARG DYNAMO_COMMIT_SHA +ENV DYNAMO_COMMIT_SHA=$DYNAMO_COMMIT_SHA + ENTRYPOINT ["/opt/nvidia/nvidia_entrypoint.sh"] CMD [] diff --git a/container/Dockerfile.trtllm b/container/Dockerfile.trtllm index a9b93f585a..1d5151da78 100644 --- a/container/Dockerfile.trtllm +++ b/container/Dockerfile.trtllm @@ -200,9 +200,6 @@ ENV NIXL_PLUGIN_DIR=$NIXL_LIB_DIR/plugins # workaround for pickle lib issue ENV OMPI_MCA_coll_ucc_enable=0 -ARG DYNAMO_COMMIT_SHA -ENV DYNAMO_COMMIT_SHA=$DYNAMO_COMMIT_SHA - # Install Python, build-essential and python3-dev as apt dependencies RUN if [ ${ARCH_ALT} = "x86_64" ]; then \ ARCH_FOR_GPG=${ARCH_ALT}; \ @@ -382,6 +379,11 @@ RUN chmod 755 /opt/dynamo/.launch_screen && \ echo 'cat /opt/dynamo/.launch_screen' >> /etc/bash.bashrc USER dynamo + +# Set DYNAMO_COMMIT_SHA late to avoid cache invalidation +ARG DYNAMO_COMMIT_SHA +ENV DYNAMO_COMMIT_SHA=$DYNAMO_COMMIT_SHA + ENTRYPOINT ["/opt/nvidia/nvidia_entrypoint.sh"] CMD [] diff --git a/container/Dockerfile.vllm b/container/Dockerfile.vllm index cfef3fed4a..abfd2e3e98 100644 --- a/container/Dockerfile.vllm +++ b/container/Dockerfile.vllm @@ -182,9 +182,6 @@ ENV NIXL_PREFIX=/opt/nvidia/nvda_nixl ENV NIXL_LIB_DIR=$NIXL_PREFIX/lib/${ARCH_ALT}-linux-gnu ENV NIXL_PLUGIN_DIR=$NIXL_LIB_DIR/plugins -ARG DYNAMO_COMMIT_SHA -ENV DYNAMO_COMMIT_SHA=$DYNAMO_COMMIT_SHA - # Install Python, build-essential and python3-dev as apt dependencies RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ @@ -306,6 +303,10 @@ RUN chmod 755 /opt/dynamo/.launch_screen && \ USER dynamo +# Set DYNAMO_COMMIT_SHA late to avoid cache invalidation +ARG DYNAMO_COMMIT_SHA +ENV DYNAMO_COMMIT_SHA=$DYNAMO_COMMIT_SHA + ENTRYPOINT ["/opt/nvidia/nvidia_entrypoint.sh"] CMD [] @@ -327,9 +328,6 @@ FROM runtime AS dev # Don't want ubuntu to be editable, just change uid and gid. ARG WORKSPACE_DIR=/workspace -ARG DYNAMO_COMMIT_SHA -ENV DYNAMO_COMMIT_SHA=$DYNAMO_COMMIT_SHA - USER root # Install utilities as root RUN apt-get update -y && \ @@ -377,5 +375,9 @@ COPY --from=dynamo_base /usr/local/cargo /usr/local/cargo RUN uv pip install maturin[patchelf] && \ uv pip install --no-deps -e . +# Set DYNAMO_COMMIT_SHA late to avoid cache invalidation +ARG DYNAMO_COMMIT_SHA +ENV DYNAMO_COMMIT_SHA=$DYNAMO_COMMIT_SHA + ENTRYPOINT ["/opt/nvidia/nvidia_entrypoint.sh"] CMD []