Skip to content

fix(container): reuse pinned protoc in runtime image - #12535

Merged
dagil-nvidia merged 2 commits into
mainfrom
cursor/fix-protobuf-dev-runtime-a7df
Aug 3, 2026
Merged

fix(container): reuse pinned protoc in runtime image#12535
dagil-nvidia merged 2 commits into
mainfrom
cursor/fix-protobuf-dev-runtime-a7df

Conversation

@dagil-nvidia

@dagil-nvidia dagil-nvidia commented Aug 1, 2026

Copy link
Copy Markdown
Collaborator

Overview

Fix the v1.4.0 RC crate-staging failure where dynamo-vllm-sidecar cannot compile vllm_grpc.proto because google/protobuf/struct.proto is absent from the runtime test image.

Summary

  • Copy the pinned protoc 25.3 binary and its matching well-known schemas from wheel_builder into the Dynamo runtime image.
  • Point runtime rebuilds at /usr/local/bin/protoc.
  • Remove the older distro protobuf-compiler package from the runtime stage instead of mixing it with schemas from another protobuf version.

Validation

  • python3 container/render.py --framework dynamo --target runtime --device cuda --cuda-version 13.0 --platform linux/amd64
  • Confirmed the rendered Dockerfile creates the 25.3 toolchain in wheel_builder, then copies its compiler and google/protobuf schema tree into runtime.
  • Confirmed the runtime stage sets PROTOC=/usr/local/bin/protoc and checks for google/protobuf/struct.proto during the image build.
  • git diff --check main...HEAD
  • Focused pre-commit remains unavailable because the executable is not installed in this environment.

Details

The wheel-builder stage already downloads protoc 25.3 and unpacks the schemas from the same release archive. Runtime test images rebuild Rust crates, but the runtime stage previously installed Ubuntu's older protobuf-compiler without its recommended schema package. Reusing the wheel-builder toolchain keeps the compiler and well-known types version-matched.

Where Should The Reviewer Start?

container/templates/dynamo_runtime.Dockerfile

Related Issues

This PR is not linked to an issue:

  • Confirmed — no related issue
Open in Web Open in Cursor 

Summary by CodeRabbit

  • Bug Fixes
    • Improved runtime compatibility by including required Protocol Buffers support in the application environment.

Signed-off-by: Cursor Agent <cursoragent@cursor.com>

Co-authored-by: Dan Gil <dagil-nvidia@users.noreply.github.com>
@copy-pr-bot

copy-pr-bot Bot commented Aug 1, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@dagil-nvidia
dagil-nvidia marked this pull request as ready for review August 1, 2026 16:47
@dagil-nvidia
dagil-nvidia requested a review from a team as a code owner August 1, 2026 16:47
@dagil-nvidia

Copy link
Copy Markdown
Collaborator Author

/ok to test 2f7f6fa

@coderabbitai

coderabbitai Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

The runtime Docker image now installs the libprotobuf-dev Debian package with its existing development dependencies.

Changes

Runtime image

Layer / File(s) Summary
Runtime package installation
container/templates/dynamo_runtime.Dockerfile
The runtime image adds libprotobuf-dev to its apt-installed development dependencies.

Estimated code review effort: 1 (Trivial) | ~2 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title describes a protobuf compiler change in the runtime image, but it does not precisely match the added libprotobuf-dev package.
Description check ✅ Passed The description includes the overview, change details, reviewer starting point, validation, and required no-related-issue confirmation.

Comment @coderabbitai help to get the list of available commands.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 potential issue.

Open in Devin Review

Comment thread container/templates/dynamo_runtime.Dockerfile Outdated
Signed-off-by: Cursor Agent <cursoragent@cursor.com>

Co-authored-by: Dan Gil <dagil-nvidia@users.noreply.github.com>
@cursor cursor Bot changed the title fix(container): install protobuf schema headers fix(container): reuse pinned protoc in runtime image Aug 1, 2026
@dagil-nvidia
dagil-nvidia enabled auto-merge (squash) August 1, 2026 17:21
@cursor

cursor Bot commented Aug 1, 2026

Copy link
Copy Markdown

/ok to test 8366fc6

@datadog-official

This comment has been minimized.

@dagil-nvidia

Copy link
Copy Markdown
Collaborator Author

/ok to test 8366fc6

@dagil-nvidia
dagil-nvidia merged commit 0a2cf56 into main Aug 3, 2026
107 checks passed
@dagil-nvidia
dagil-nvidia deleted the cursor/fix-protobuf-dev-runtime-a7df branch August 3, 2026 18:45
pvijayakrish pushed a commit that referenced this pull request Aug 4, 2026
…-pick → release/1.4.0] (#12584)

Signed-off-by: Dan Gil <dagil@nvidia.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Dan Gil <dagil-nvidia@users.noreply.github.com>
hhzhang16 added a commit that referenced this pull request Aug 4, 2026
dyn-3691-extract-shared-target-pid-cuda-customstorage-operation-layer

* 'main' of https://github.com/ai-dynamo/dynamo: (50 commits)
  docs(cli): correct removed vLLM prefill-worker flag reference (#12581)
  docs(operator): reserve webhook Ignore for emergencies (#12563)
  ci(docs): make previews and checks match what actually publishes (#12339)
  refactor(vllm): organize custom encoder modules (#12416)
  feat(llm): Select reasoning output field via env var (#11464)
  feat(runtime): add TLS support to TCP request plane (#10921)
  fix: convert conditional disagg sglang warning to httperror 400 (#12578)
  feat(operator): add runtime feature gates (#12421)
  refactor(runtime): extract PushRouter transport seam behind StreamingDispatch trait (#12447)
  feat(replay): add deterministic canonical offline reports (#12363)
  build: bump ModelExpress to 0.5.0(OPS-7978) (#12455)
  fix(mocker): use logical KV tokens for decode timing (#12583)
  fix(examples): update Triton example for CUDA 13 + fix libdcgm copy (DYN-3697) (#12577)
  refactor(operator): implement composition-first DGD reconciliation (#12283)
  feat(frontend): add basetenkenizer backend (#12376)
  fix(profiler): configure rapid mocker without planner (#12573)
  docs(vllm): correct worker-role flags and document --kv-transfer-config (#12568)
  ci: add Kubernetes deploy test to nightly (#12090)
  fix(container): reuse pinned protoc in runtime image (#12535)
  feat(self-host): flip DYN_SELF_HOST_METADATA default to ON (gh-8749) (#11417)
  ...

Signed-off-by: Hannah Zhang <hannahz@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants