From 3bcfb5c21969a95ed65f0527fde67b068cf6e6cf Mon Sep 17 00:00:00 2001 From: "M. Chornyi" <99709299+mc-nv@users.noreply.github.com> Date: Thu, 23 Jul 2026 08:53:02 -0700 Subject: [PATCH 1/7] build: Flex maven installation --- Dockerfile.sdk | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Dockerfile.sdk b/Dockerfile.sdk index 1fa015f494..7218d7242d 100644 --- a/Dockerfile.sdk +++ b/Dockerfile.sdk @@ -38,7 +38,6 @@ ARG TRITON_CORE_REPO_TAG=main ARG TRITON_CLIENT_REPO_TAG=main ARG TRITON_THIRD_PARTY_REPO_TAG=main ARG TRITON_ENABLE_GPU=ON -ARG JAVA_BINDINGS_MAVEN_VERSION=3.9.9 ARG JAVA_BINDINGS_JAVACPP_PRESETS_TAG=1.5.8 # DCGM version to install for Model Analyzer ARG DCGM_VERSION=4.5.3-1 @@ -89,11 +88,10 @@ ENV CMAKE_POLICY_MINIMUM_REQUIRED=3.5 # Install Maven 3.9+ manually -- the distro-provided maven is too old to # honor the MAVEN_ARGS environment variable (added in Maven 3.9.0, MNG-7038). -ARG JAVA_BINDINGS_MAVEN_VERSION -RUN wget -nv -O /tmp/maven.tar.gz \ - https://archive.apache.org/dist/maven/maven-3/${JAVA_BINDINGS_MAVEN_VERSION}/binaries/apache-maven-${JAVA_BINDINGS_MAVEN_VERSION}-bin.tar.gz && \ +ARG JAVA_BINDINGS_MAVEN_URL=https://archive.apache.org/dist/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.tar.gz +RUN curl -fSLk --retry 3 -o /tmp/maven.tar.gz ${JAVA_BINDINGS_MAVEN_URL} && \ tar -xzf /tmp/maven.tar.gz -C /opt && \ - ln -s /opt/apache-maven-${JAVA_BINDINGS_MAVEN_VERSION} /opt/maven && \ + find /opt -maxdepth 1 -name "apache-maven-*" -type d -exec ln -s {} /opt/maven \; && \ rm /tmp/maven.tar.gz ENV PATH="/opt/maven/bin:${PATH}" From 2c48ce28ef0fd770350b7b106e32a794239ec960 Mon Sep 17 00:00:00 2001 From: "M. Chornyi" <99709299+mc-nv@users.noreply.github.com> Date: Thu, 23 Jul 2026 11:03:46 -0700 Subject: [PATCH 2/7] build: Update MAVEN url --- Dockerfile.sdk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile.sdk b/Dockerfile.sdk index 7218d7242d..2f601c0724 100644 --- a/Dockerfile.sdk +++ b/Dockerfile.sdk @@ -39,6 +39,7 @@ ARG TRITON_CLIENT_REPO_TAG=main ARG TRITON_THIRD_PARTY_REPO_TAG=main ARG TRITON_ENABLE_GPU=ON ARG JAVA_BINDINGS_JAVACPP_PRESETS_TAG=1.5.8 +ARG JAVA_BINDINGS_MAVEN_URL=https://archive.apache.org/dist/maven/maven-3/3.9.16/binaries/apache-maven-3.9.16-bin.tar.gz # DCGM version to install for Model Analyzer ARG DCGM_VERSION=4.5.3-1 @@ -88,7 +89,7 @@ ENV CMAKE_POLICY_MINIMUM_REQUIRED=3.5 # Install Maven 3.9+ manually -- the distro-provided maven is too old to # honor the MAVEN_ARGS environment variable (added in Maven 3.9.0, MNG-7038). -ARG JAVA_BINDINGS_MAVEN_URL=https://archive.apache.org/dist/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.tar.gz +ARG JAVA_BINDINGS_MAVEN_URL RUN curl -fSLk --retry 3 -o /tmp/maven.tar.gz ${JAVA_BINDINGS_MAVEN_URL} && \ tar -xzf /tmp/maven.tar.gz -C /opt && \ find /opt -maxdepth 1 -name "apache-maven-*" -type d -exec ln -s {} /opt/maven \; && \ From a2ac2a77db79b504f32cefc4902f9fdaa5bf84c4 Mon Sep 17 00:00:00 2001 From: "M. Chornyi" <99709299+mc-nv@users.noreply.github.com> Date: Thu, 23 Jul 2026 11:45:44 -0700 Subject: [PATCH 3/7] fix: Update Dockerfile.sdk --- Dockerfile.sdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.sdk b/Dockerfile.sdk index 2f601c0724..a4de845ff4 100644 --- a/Dockerfile.sdk +++ b/Dockerfile.sdk @@ -93,7 +93,7 @@ ARG JAVA_BINDINGS_MAVEN_URL RUN curl -fSLk --retry 3 -o /tmp/maven.tar.gz ${JAVA_BINDINGS_MAVEN_URL} && \ tar -xzf /tmp/maven.tar.gz -C /opt && \ find /opt -maxdepth 1 -name "apache-maven-*" -type d -exec ln -s {} /opt/maven \; && \ - rm /tmp/maven.tar.gz + rm /tmp/maven.tar.gz && /opt/maven/bin/mvn --version ENV PATH="/opt/maven/bin:${PATH}" # Build expects "python" executable (not python3). From d21b23edf88fa4837fded6f342f73f9074996f70 Mon Sep 17 00:00:00 2001 From: "M. Chornyi" <99709299+mc-nv@users.noreply.github.com> Date: Thu, 23 Jul 2026 12:26:49 -0700 Subject: [PATCH 4/7] build: Cap number of threads --- Dockerfile.sdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.sdk b/Dockerfile.sdk index a4de845ff4..a5e0f71679 100644 --- a/Dockerfile.sdk +++ b/Dockerfile.sdk @@ -131,7 +131,7 @@ RUN cmake -DCMAKE_INSTALL_PREFIX=/workspace/install \ -DTRITON_ENABLE_GPU=${TRITON_ENABLE_GPU} /workspace/client RUN --mount=type=secret,id=maven_settings,target=/run/secrets/maven_settings,required=false \ if [ -f /run/secrets/maven_settings ]; then export MAVEN_ARGS="--settings /run/secrets/maven_settings"; fi && \ - cmake --build . -v --parallel --target cc-clients java-clients python-clients + cmake --build . -v --parallel 16 --target cc-clients java-clients python-clients # Install Java API Bindings RUN --mount=type=secret,id=maven_settings,target=/run/secrets/maven_settings,required=false \ From f98551cd1e2f9d3eebe0ca71404191a4d4ba2c4f Mon Sep 17 00:00:00 2001 From: "M. Chornyi" <99709299+mc-nv@users.noreply.github.com> Date: Thu, 23 Jul 2026 13:57:14 -0700 Subject: [PATCH 5/7] fix: Use secrets --- Dockerfile.sdk | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile.sdk b/Dockerfile.sdk index a5e0f71679..6f19870be9 100644 --- a/Dockerfile.sdk +++ b/Dockerfile.sdk @@ -90,7 +90,9 @@ ENV CMAKE_POLICY_MINIMUM_REQUIRED=3.5 # Install Maven 3.9+ manually -- the distro-provided maven is too old to # honor the MAVEN_ARGS environment variable (added in Maven 3.9.0, MNG-7038). ARG JAVA_BINDINGS_MAVEN_URL -RUN curl -fSLk --retry 3 -o /tmp/maven.tar.gz ${JAVA_BINDINGS_MAVEN_URL} && \ +RUN --mount=type=secret,id=maven_url,env=MAVEN_URL,required=false \ + test -v MAVEN_URL || MAVEN_URL="${JAVA_BINDINGS_MAVEN_URL}" && \ + curl -fSLk --retry 3 -o /tmp/maven.tar.gz "${MAVEN_URL}" && \ tar -xzf /tmp/maven.tar.gz -C /opt && \ find /opt -maxdepth 1 -name "apache-maven-*" -type d -exec ln -s {} /opt/maven \; && \ rm /tmp/maven.tar.gz && /opt/maven/bin/mvn --version From 13d96cb43e06a657c857f3974efbfe0403b05dc7 Mon Sep 17 00:00:00 2001 From: "M. Chornyi" <99709299+mc-nv@users.noreply.github.com> Date: Thu, 23 Jul 2026 14:18:24 -0700 Subject: [PATCH 6/7] fix: Update dockefile --- Dockerfile.sdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.sdk b/Dockerfile.sdk index 6f19870be9..b598a30939 100644 --- a/Dockerfile.sdk +++ b/Dockerfile.sdk @@ -91,7 +91,7 @@ ENV CMAKE_POLICY_MINIMUM_REQUIRED=3.5 # honor the MAVEN_ARGS environment variable (added in Maven 3.9.0, MNG-7038). ARG JAVA_BINDINGS_MAVEN_URL RUN --mount=type=secret,id=maven_url,env=MAVEN_URL,required=false \ - test -v MAVEN_URL || MAVEN_URL="${JAVA_BINDINGS_MAVEN_URL}" && \ + [ -n "${MAVEN_URL}" ] || MAVEN_URL="${JAVA_BINDINGS_MAVEN_URL}"; \ curl -fSLk --retry 3 -o /tmp/maven.tar.gz "${MAVEN_URL}" && \ tar -xzf /tmp/maven.tar.gz -C /opt && \ find /opt -maxdepth 1 -name "apache-maven-*" -type d -exec ln -s {} /opt/maven \; && \ From 57198089b8ea6841780559ff5e9024ffc7d1fd6d Mon Sep 17 00:00:00 2001 From: "M. Chornyi" <99709299+mc-nv@users.noreply.github.com> Date: Thu, 23 Jul 2026 15:30:38 -0700 Subject: [PATCH 7/7] build: Lower limit of the parallel threads --- Dockerfile.sdk | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Dockerfile.sdk b/Dockerfile.sdk index b598a30939..f284bb26f2 100644 --- a/Dockerfile.sdk +++ b/Dockerfile.sdk @@ -46,6 +46,11 @@ ARG DCGM_VERSION=4.5.3-1 ARG NVIDIA_TRITON_SERVER_SDK_VERSION=unknown ARG NVIDIA_BUILD_ID=unknown +# Parallelism for the client/gRPC compile. gRPC C++ translation units peak at +# 1-2+ GB RAM each, so keep this low to avoid the OOM killer on memory-limited +# builders. Override with --build-arg TRITON_CLIENT_BUILD_PARALLEL=N. +ARG TRITON_CLIENT_BUILD_PARALLEL=4 + ############################################################################ ## Build image ############################################################################ @@ -113,6 +118,7 @@ ARG TRITON_ENABLE_GPU ARG JAVA_BINDINGS_MAVEN_VERSION ARG JAVA_BINDINGS_JAVACPP_PRESETS_TAG ARG TARGETPLATFORM +ARG TRITON_CLIENT_BUILD_PARALLEL WORKDIR /workspace COPY TRITON_VERSION . @@ -133,7 +139,7 @@ RUN cmake -DCMAKE_INSTALL_PREFIX=/workspace/install \ -DTRITON_ENABLE_GPU=${TRITON_ENABLE_GPU} /workspace/client RUN --mount=type=secret,id=maven_settings,target=/run/secrets/maven_settings,required=false \ if [ -f /run/secrets/maven_settings ]; then export MAVEN_ARGS="--settings /run/secrets/maven_settings"; fi && \ - cmake --build . -v --parallel 16 --target cc-clients java-clients python-clients + cmake --build . -v --parallel ${TRITON_CLIENT_BUILD_PARALLEL} --target cc-clients java-clients python-clients # Install Java API Bindings RUN --mount=type=secret,id=maven_settings,target=/run/secrets/maven_settings,required=false \