Skip to content

fix: Require TRITON_BUILD_CONTAINER instead of synthesizing a py3-min image - #366

Merged
mc-nv merged 2 commits into
mainfrom
mchornyi/TRI-1930/inference-image
Oct 5, 2026
Merged

mc-nv merged 2 commits into
mainfrom
mchornyi/TRI-1930/inference-image

Conversation

@mc-nv

@mc-nv mc-nv commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

What does the PR do?

  • Building with only TRITON_BUILD_CONTAINER_VERSION invented
    tritonserver:${VERSION}-py3-min, an image being retired — configure
    succeeded and the build died later on a docker pull 404.
  • Building ONNX Runtime from source now requires TRITON_BUILD_CONTAINER.
    TRITON_BUILD_CONTAINER_VERSION only fed that synthesis, so it goes too.

⚠️ Breaking change

Standalone cmake builds passing only -DTRITON_BUILD_CONTAINER_VERSION now
fail with TRITON_BUILD_ONNXRUNTIME_VERSION requires TRITON_BUILD_CONTAINER.
This is the intent — loud and immediate, rather than an opaque 404 once
py3-min is withdrawn. Both README examples are updated in the same commit so
the documented path never references a removed variable.

Builds driven by server/build.py are unaffected: it always passes a
resolved image. The pre-built-ONNX-Runtime path is untouched — the guard sits
inside the build-from-source branch.

Note vs. the sibling OpenVINO change

Unlike openvino_backend, this backend does need the CUDA toolchain in its
build container when GPU support is enabled (TRITON_ENABLE_GPU defaults ON,
plus TRITON_BUILD_CUDA_VERSION/HOME). Both README examples therefore name a
CUDA-capable image, and the header comment says so.

Where should the reviewer start?

  • CMakeLists.txt — the removed synthesis and the single FATAL_ERROR guard.

Test plan

Verified with cmake 4.4.3:

Case Result
build-from-source, no TRITON_BUILD_CONTAINER fatal, "TRITON_BUILD_ONNXRUNTIME_VERSION requires TRITON_BUILD_CONTAINER"
old -DTRITON_BUILD_CONTAINER_VERSION=23.04 only same fatal — the documented break
new -DTRITON_BUILD_CONTAINER=<image> clears the guard, proceeds to FetchContent

Also ./build.py --dryrun --enable-gpu --backend onnxruntime in server: the
generated cmake_build carries
TRITON_BUILD_CONTAINER=nvcr.io/nvidia/cuda-dl-base:26.09-cuda13.4-devel-ubuntu24.04,
confirming build.py never relied on the removed fallback.

  • CI Pipeline ID:

Related PRs:

Related Issues:

  • Resolves: TRI-1930

… image

When only TRITON_BUILD_CONTAINER_VERSION was given, the build container was
invented as nvcr.io/nvidia/tritonserver:${VERSION}-py3-min. That image is
being retired, so the fallback is a latent failure: configure succeeds and the
build dies much later on a docker pull 404 for an image nobody asked for.

Stop inventing one. Building ONNX Runtime from source now requires
TRITON_BUILD_CONTAINER, which turns a missing image into a configure-time
error naming exactly what to supply. TRITON_BUILD_CONTAINER_VERSION had no
other use in this repo -- it only fed the synthesis -- so it goes with it and
the two conditions collapse into one guard.

Unlike the OpenVINO backend, this one needs the CUDA toolchain in its build
container when GPU support is enabled, so both README examples name a
CUDA-capable image and the header comment says so.

Breaking for standalone cmake builds: configuring with only
-DTRITON_BUILD_CONTAINER_VERSION now fails with
"TRITON_BUILD_ONNXRUNTIME_VERSION requires TRITON_BUILD_CONTAINER". The README
examples are updated in the same commit so the documented path does not point
at a removed variable. Builds driven by server/build.py are unaffected -- it
always passes a resolved image.
@greptile-apps

greptile-apps Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

[High risk] Changes build configuration to require explicit container image.

The PR appears safe to merge; no new actionable issue was established.

Summary

The PR requires an explicit build container when building ONNX Runtime from source and removes the inferred py3-min image.

  • Updates both README build examples to use an explicit CUDA-capable image and newer runtime versions.
  • Leaves the prebuilt-runtime path unchanged.

Reviews (2) · Last reviewed commit: "docs: Align the build examples with the ..."

Comment thread README.md Outdated
The examples pinned ONNX Runtime 1.14.1 and OpenVINO 2021.2.200 -- versions the
surrounding text ties to Triton 23.04 -- while naming a 26.09 CUDA 13.4 build
container, leaving no example of a matched configuration.

Move the versions and the worked reference to 26.09: ORT 1.30.0 and OpenVINO
2026.3.1, matching that release's TRITON_VERSION_MAP entry.

Reported by Greptile on #366.
@mc-nv
mc-nv requested review from Vinya567, nv-rinig and whoisj October 2, 2026 18:57
@mc-nv
mc-nv merged commit 8a0f4ee into main Oct 5, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fix Bug fix (fix: PRs)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants