-
Notifications
You must be signed in to change notification settings - Fork 680
build: default to using dev instead of local-dev for vllm build #2834
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Signed-off-by: Tushar Sharma <tusharma@nvidia.com>
Signed-off-by: Tushar Sharma <tusharma@nvidia.com>
WalkthroughRenames the Docker build stage/target from local-dev to dev across Dockerfile, build script, and devcontainer config. Updates image tag references to dynamo:latest-vllm and adjusts README build instructions accordingly. No code logic outside build tooling changed; no public APIs altered. Changes
Sequence Diagram(s)sequenceDiagram
participant Dev as Developer
participant Sh as build.sh
participant Dkr as Docker/BuildKit
participant Img as Image: dynamo:latest-vllm
Dev->>Sh: ./container/build.sh --target dev --framework VLLM
Sh->>Dkr: docker build --target dev ... (UID/GID args applied)
Dkr->>Dkr: Build stage "dev" in Dockerfile.vllm
Dkr-->>Img: Produce image dynamo:latest-vllm
Dev->>Dev: Devcontainer uses updated tag
Note over Sh,Dkr: "local-dev" target no longer referenced
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Poem
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
Status, Documentation and Community
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (3)
container/build.sh (1)
364-368: Bug: UID/GID not passed when TARGET is omitted (but defaults to dev).If the caller doesn’t pass --target, we still build the dev stage via TARGET_STR, yet USER_UID/USER_GID aren’t forwarded because the condition only checks $TARGET == "dev". This can cause host/container permission issues.
Apply:
@@ - if [ -n "$TARGET" ]; then - TARGET_STR="--target ${TARGET}" - else - TARGET_STR="--target dev" - fi + EFFECTIVE_TARGET="${TARGET:-dev}" + TARGET_STR="--target ${EFFECTIVE_TARGET}" @@ -if [[ $TARGET == "dev" ]]; then +if [[ ${EFFECTIVE_TARGET} == "dev" ]]; then BUILD_ARGS+=" --build-arg USER_UID=$(id -u) --build-arg USER_GID=$(id -g) " fiAlso applies to: 468-471
.devcontainer/README.md (2)
44-46: Update diagram label to match new image tag.Diagram still references dynamo:latest-vllm-local-dev.
Apply:
- IMAGE["Docker Image<br/>dynamo:latest-vllm-local-dev"] + IMAGE["Docker Image<br/>dynamo:latest-vllm"]
381-382: Troubleshooting section still points to local-dev target.Align with the new default dev stage and consistent tag.
Apply:
- ./container/build.sh --target local-dev + ./container/build.sh --framework VLLM
🧹 Nitpick comments (2)
.devcontainer/devcontainer.json (1)
10-10: Fix comment to match new default tag behavior.The image is now "dynamo:latest-vllm" (no "-dev" suffix). Update the trailing comment to drop "local dev" to avoid confusion.
Apply:
- "image": "dynamo:latest-vllm", // Use the latest VLLM local dev image + "image": "dynamo:latest-vllm", // Use the latest VLLM dev imagecontainer/Dockerfile.vllm (1)
297-379: Enforce explicit UID/GID mapping for dev stage (avoid silent 1000:1000 defaults).To prevent permission mismatches when building this Dockerfile directly (outside build.sh), drop defaults for USER_UID/USER_GID so callers must pass them. This mirrors prior local-dev intent and keeps parity with team practices.
Apply:
@@ -ARG USER_UID=1000 -ARG USER_GID=1000 +ARG USER_UID +ARG USER_GIDNote: With the build.sh fix, these args are always provided for dev builds even when --target is omitted.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (4)
.devcontainer/README.md(1 hunks).devcontainer/devcontainer.json(1 hunks)container/Dockerfile.vllm(1 hunks)container/build.sh(1 hunks)
🧰 Additional context used
🧠 Learnings (5)
📓 Common learnings
Learnt from: keivenchang
PR: ai-dynamo/dynamo#2797
File: container/Dockerfile:437-449
Timestamp: 2025-08-30T20:43:49.632Z
Learning: In the dynamo project's devcontainer setup, the team prioritizes consistency across framework-specific Dockerfiles (like container/Dockerfile, container/Dockerfile.vllm, etc.) by mirroring their structure, even when individual optimizations might be possible, to maintain uniformity in the development environment setup.
Learnt from: keivenchang
PR: ai-dynamo/dynamo#2797
File: .devcontainer/devcontainer.json:12-12
Timestamp: 2025-08-30T20:43:10.091Z
Learning: In the dynamo project, devcontainer.json files use templated container names (like "dynamo-vllm-devcontainer") that are automatically processed by the copy_devcontainer.sh script to generate framework-specific configurations with unique names, preventing container name collisions.
Learnt from: keivenchang
PR: ai-dynamo/dynamo#2797
File: .devcontainer/devcontainer.json:12-12
Timestamp: 2025-08-30T20:43:10.091Z
Learning: In the dynamo project's devcontainer setup, hard-coded container names in devcontainer.json files serve as templates that are automatically processed by the copy_devcontainer.sh script to generate framework-specific configurations with unique names, preventing container name collisions.
📚 Learning: 2025-08-30T20:43:10.091Z
Learnt from: keivenchang
PR: ai-dynamo/dynamo#2797
File: .devcontainer/devcontainer.json:12-12
Timestamp: 2025-08-30T20:43:10.091Z
Learning: In the dynamo project, devcontainer.json files use templated container names (like "dynamo-vllm-devcontainer") that are automatically processed by the copy_devcontainer.sh script to generate framework-specific configurations with unique names, preventing container name collisions.
Applied to files:
.devcontainer/devcontainer.json.devcontainer/README.md
📚 Learning: 2025-08-30T20:43:10.091Z
Learnt from: keivenchang
PR: ai-dynamo/dynamo#2797
File: .devcontainer/devcontainer.json:12-12
Timestamp: 2025-08-30T20:43:10.091Z
Learning: In the dynamo project's devcontainer setup, hard-coded container names in devcontainer.json files serve as templates that are automatically processed by the copy_devcontainer.sh script to generate framework-specific configurations with unique names, preventing container name collisions.
Applied to files:
.devcontainer/devcontainer.json.devcontainer/README.md
📚 Learning: 2025-08-30T20:43:49.632Z
Learnt from: keivenchang
PR: ai-dynamo/dynamo#2797
File: container/Dockerfile:437-449
Timestamp: 2025-08-30T20:43:49.632Z
Learning: In the dynamo project's devcontainer setup, the team prioritizes consistency across framework-specific Dockerfiles (like container/Dockerfile, container/Dockerfile.vllm, etc.) by mirroring their structure, even when individual optimizations might be possible, to maintain uniformity in the development environment setup.
Applied to files:
.devcontainer/devcontainer.jsoncontainer/Dockerfile.vllm.devcontainer/README.md
📚 Learning: 2025-09-03T01:10:12.599Z
Learnt from: keivenchang
PR: ai-dynamo/dynamo#2822
File: container/Dockerfile.vllm:343-352
Timestamp: 2025-09-03T01:10:12.599Z
Learning: In the dynamo project's local-dev Docker targets, USER_UID and USER_GID build args are intentionally left without default values to force explicit UID/GID mapping during build time, preventing file permission issues in local development environments where container users need to match host user permissions for mounted volumes.
Applied to files:
.devcontainer/devcontainer.jsoncontainer/build.sh.devcontainer/README.md
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: Build and Test - dynamo
- GitHub Check: Build and Test - vllm
keivenchang
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rubber stamp so people can build and run. Will follow up with another PR.
Signed-off-by: Tushar Sharma <tusharma@nvidia.com>
Signed-off-by: Tushar Sharma <tusharma@nvidia.com>
Signed-off-by: Tushar Sharma <tusharma@nvidia.com>
Signed-off-by: Tushar Sharma <tusharma@nvidia.com> Signed-off-by: nnshah1 <neelays@nvidia.com>
Overview:
Recent changes to Dockerfile.vllm resulted in the deletion of the dev stage in favor of local-dev stage. This was to align with the .devcontainer setup. However, to keep parity with other backends, the decision was made to keep the dev stage instead of local-dev. This PR updates the Dockerfile to use the dev stage as default instead of local-dev.
Details:
Where should the reviewer start?
Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to)
Summary by CodeRabbit
No user-facing feature changes.