Skip to content

[CI/Build] Add Dockerfile.cuda for NVIDIA GPU users [Skip-CI]#1439

Merged
Gaohan123 merged 6 commits into
vllm-project:mainfrom
loveysuby:docker/add-dockerfile-cuda
Apr 5, 2026
Merged

[CI/Build] Add Dockerfile.cuda for NVIDIA GPU users [Skip-CI]#1439
Gaohan123 merged 6 commits into
vllm-project:mainfrom
loveysuby:docker/add-dockerfile-cuda

Conversation

@loveysuby
Copy link
Copy Markdown
Contributor

@loveysuby loveysuby commented Feb 23, 2026

PLEASE FILL IN THE PR DESCRIPTION HERE ENSURING ALL CHECKLIST ITEMS (AT THE BOTTOM) HAVE BEEN CONSIDERED.

Purpose

Add Dockerfile.cuda for NVIDIA GPU users to build custom Docker images.

This addresses review feedback on PR #1386 that Dockerfile.ci is not suitable for end users:

  • Installs unnecessary dev packages (.[dev])
  • Has empty ENTRYPOINT requiring explicit vllm serve --omni
  • Named/intended for CI-only use

The new Dockerfile follows the same structure as Dockerfile.rocm. (#280)

Build with a specific vLLM base image version (e.g. v0.14.0 - default: v0.19.0):

DOCKER_BUILDKIT=1 docker build -f docker/Dockerfile.cuda \
  --build-arg BASE_IMAGE=vllm/vllm-openai:v0.19.0 \
  -t vllm-omni-cuda .

Test Plan

Verified Dockerfile syntax with docker build --check across all official vLLM release versions:

cd vllm-omni/
curl -s "https://hub.docker.com/v2/repositories/vllm/vllm-openai/tags?page_size=100" \
  | jq -r '.results[].name' \
  | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' \
  | sort -Vr \
  | while read version; do
      DOCKER_BUILDKIT=1 docker build --check -f docker/Dockerfile.cuda --build-arg BASE_IMAGE=vllm/vllm-openai:$version . || break
    done

Test Result

[+] Building 3.3s (3/3) FINISHED                                                                                                                                                            docker:desktop-linux
 => [internal] load build definition from Dockerfile.cuda                                                                                                                                                   0.0s
 => => transferring dockerfile: 809B                                                                                                                                                                        0.0s
 => [internal] load metadata for docker.io/vllm/vllm-openai:v0.15.1                                                                                                                                         3.3s
 => [internal] load .dockerignore                                                                                                                                                                           0.0s
 => => transferring context: 2B                                                                                                                                                                             0.0s
Check complete, no warnings found.

[+] Building 1.1s (3/3) FINISHED                                                                                                                                                            docker:desktop-linux
 => [internal] load build definition from Dockerfile.cuda                                                                                                                                                   0.0s
 => => transferring dockerfile: 809B                                                                                                                                                                        0.0s
 => [internal] load metadata for docker.io/vllm/vllm-openai:v0.15.0                                                                                                                                         1.1s
 => [internal] load .dockerignore                                                                                                                                                                           0.0s
 => => transferring context: 2B                                                                                                                                                                             0.0s
Check complete, no warnings found.

[+] Building 1.1s (3/3) FINISHED                                                                                                                                                            docker:desktop-linux
 => [internal] load build definition from Dockerfile.cuda                                                                                                                                                   0.0s
 => => transferring dockerfile: 809B                                                                                                                                                                        0.0s
 => [internal] load metadata for docker.io/vllm/vllm-openai:v0.14.1                                                                                                                                         1.1s
 => [internal] load .dockerignore                                                                                                                                                                           0.0s
 => => transferring context: 2B                                                                                                                                                                             0.0s
Check complete, no warnings found.

[+] Building 1.2s (3/3) FINISHED                                                                                                                                                            docker:desktop-linux
 => [internal] load build definition from Dockerfile.cuda                                                                                                                                                   0.0s
 => => transferring dockerfile: 809B                                                                                                                                                                        0.0s
 => [internal] load metadata for docker.io/vllm/vllm-openai:v0.14.0                                                                                                                                         1.2s
 => [internal] load .dockerignore                                                                                                                                                                           0.0s
 => => transferring context: 2B                                                                                                                                                                             0.0s
Check complete, no warnings found.

[+] Building 1.1s (3/3) FINISHED                                                                                                                                                            docker:desktop-linux
 => [internal] load build definition from Dockerfile.cuda                                                                                                                                                   0.0s
 => => transferring dockerfile: 809B                                                                                                                                                                        0.0s
 => [internal] load metadata for docker.io/vllm/vllm-openai:v0.13.0                                                                                                                                         1.1s
 => [internal] load .dockerignore                                                                                                                                                                           0.0s
 => => transferring context: 2B                                                                                                                                                                             0.0s
Check complete, no warnings found.

[+] Building 1.2s (3/3) FINISHED                                                                                                                                                            docker:desktop-linux
 => [internal] load build definition from Dockerfile.cuda                                                                                                                                                   0.0s
 => => transferring dockerfile: 809B                                                                                                                                                                        0.0s
 => [internal] load metadata for docker.io/vllm/vllm-openai:v0.12.0                                                                                                                                         1.1s
 => [internal] load .dockerignore                                                                                                                                                                           0.0s
 => => transferring context: 2B                                                                                                                                                                             0.0s
Check complete, no warnings found.

[+] Building 1.2s (3/3) FINISHED                                                                                                                                                            docker:desktop-linux
 => [internal] load build definition from Dockerfile.cuda                                                                                                                                                   0.0s
 => => transferring dockerfile: 809B                                                                                                                                                                        0.0s
 => [internal] load metadata for docker.io/vllm/vllm-openai:v0.11.2                                                                                                                                         1.2s
 => [internal] load .dockerignore                                                                                                                                                                           0.0s
 => => transferring context: 2B                                                                                                                                                                             0.0s
Check complete, no warnings found.

[+] Building 1.1s (3/3) FINISHED                                                                                                                                                            docker:desktop-linux
 => [internal] load build definition from Dockerfile.cuda                                                                                                                                                   0.0s
 => => transferring dockerfile: 809B                                                                                                                                                                        0.0s
 => [internal] load metadata for docker.io/vllm/vllm-openai:v0.11.1                                                                                                                                         1.1s
 => [internal] load .dockerignore                                                                                                                                                                           0.0s
 => => transferring context: 2B                                                                                                                                                                             0.0s
Check complete, no warnings found.

[+] Building 1.2s (3/3) FINISHED                                                                                                                                                            docker:desktop-linux
 => [internal] load build definition from Dockerfile.cuda                                                                                                                                                   0.0s
 => => transferring dockerfile: 809B                                                                                                                                                                        0.0s
 => [internal] load metadata for docker.io/vllm/vllm-openai:v0.11.0                                                                                                                                         1.1s
 => [internal] load .dockerignore                                                                                                                                                                           0.0s
 => => transferring context: 2B                                                                                                                                                                             0.0s
Check complete, no warnings found.

[+] Building 1.2s (3/3) FINISHED                                                                                                                                                            docker:desktop-linux
 => [internal] load build definition from Dockerfile.cuda                                                                                                                                                   0.0s
 => => transferring dockerfile: 809B                                                                                                                                                                        0.0s
 => [internal] load metadata for docker.io/vllm/vllm-openai:v0.10.2                                                                                                                                         1.1s
 => [internal] load .dockerignore                                                                                                                                                                           0.0s
 => => transferring context: 2B                                                                                                                                                                             0.0s
Check complete, no warnings found.

Essential Elements of an Effective PR Description Checklist
  • The purpose of the PR, such as "Fix some issue (link existing issues this PR will resolve)".
  • The test plan. Please providing the test scripts & test commands. Please state the reasons if your codes don't require additional test scripts. For test file guidelines, please check the test style doc
  • The test results. Please pasting the results comparison before and after, or e2e results.
  • (Optional) The necessary documentation update, such as updating supported_models.md and examples for a new model. Please run mkdocs serve to sync the documentation editions to ./docs.
  • (Optional) Release notes update. If your change is user facing, please update the release notes draft.

BEFORE SUBMITTING, PLEASE READ https://github.com/vllm-project/vllm-omni/blob/main/CONTRIBUTING.md (anything written below this line will be removed by GitHub Actions)

@loveysuby loveysuby marked this pull request as ready for review February 23, 2026 14:33
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 986f39bf65

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread docker/Dockerfile.cuda Outdated

RUN ln -sf /usr/bin/python3 /usr/bin/python

CMD ["/bin/bash"]
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Remove inherited CMD from vllm-openai stage

The vllm-openai stage is built FROM final, so it inherits CMD ["/bin/bash"] from this stage; with ENTRYPOINT ["vllm", "serve", "--omni"], Docker will run vllm serve --omni /bin/bash by default, which passes /bin/bash as an extra argument and can break container startup unless users override the command. This affects the default build target because vllm-openai is the last stage in this Dockerfile.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Updated to use empty entrypoint for consistency with Dockerfile.rocm.

I was wondering if it might be helpful to use ENTRYPOINT ["vllm", "serve", "--omni"] as a common pattern for both Dockerfiles.rocm & .cuda.

@loveysuby loveysuby force-pushed the docker/add-dockerfile-cuda branch from 27187cc to 1ea6145 Compare February 23, 2026 14:50
Signed-off-by: Hyoseop Song <crad_on25@naver.com>
Signed-off-by: Hyoseop Song <crad_on25@naver.com>
@loveysuby loveysuby force-pushed the docker/add-dockerfile-cuda branch from 20682ee to ecc9813 Compare February 23, 2026 15:06
@hsliuustc0106
Copy link
Copy Markdown
Collaborator

@vllm-omni-reviewer

Comment thread docker/Dockerfile.cuda
Comment thread docker/Dockerfile.cuda Outdated
Copy link
Copy Markdown
Collaborator

@lishunyang12 lishunyang12 left a comment

Choose a reason for hiding this comment

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

Left a couple comments — mainly the missing system deps (sox etc) which both existing Dockerfiles install.

Comment thread docker/Dockerfile.cuda Outdated
@tzhouam
Copy link
Copy Markdown
Collaborator

tzhouam commented Mar 3, 2026

@ywang96 Can we use the dockerfile that updates the docker in https://hub.docker.com/r/vllm/vllm-omni/tags

…encies

Signed-off-by: Hyoseop Song <crad_on25@naver.com>

Signed-off-by: Hyoseop Song  <crad_on25@naver.com>
@loveysuby
Copy link
Copy Markdown
Contributor Author

@lishunyang12 @tzhouam Thanks for the review! All suggestions addressed in 4800362.
This PR supports #1386 (docs about usage of Dockerfile.cuda) — I'll update that docs once this pr looks RTM comments.

@tzhouam @ywang96 About the Docker Hub question — my initial plan was to keep this for end-user custom builds (as in #1386), but I'm open to using it for the official hub.docker.com/r/vllm/vllm-omni/tags builds too if that would be helpful. Would that direction make sense?

@Gaohan123 Gaohan123 added this to the v0.18.0 milestone Mar 14, 2026
@Gaohan123
Copy link
Copy Markdown
Collaborator

@tzhouam @ywang96 PTAL again

Comment thread docker/Dockerfile.cuda Outdated
@@ -0,0 +1,22 @@
ARG BASE_IMAGE=vllm/vllm-openai:v0.16.0
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

please update this to v0.17.0 or v0.18.0(will release soon)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Thanks, revised in 9bcf730 !

@lishunyang12
Copy link
Copy Markdown
Collaborator

Thanks for addressing those. Will take another look.

Copy link
Copy Markdown
Collaborator

@lishunyang12 lishunyang12 left a comment

Choose a reason for hiding this comment

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

Looks good. System deps are there now, nice and minimal.

Signed-off-by: Hyoseop Song <crad_on25@naver.com>
@gcanlin gcanlin requested a review from tzhouam March 23, 2026 02:34
Comment thread docker/Dockerfile.cuda Outdated
@@ -0,0 +1,22 @@
ARG BASE_IMAGE=vllm/vllm-openai:v0.18.0
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

As vLLM-Omni just updates to 0.19.0rc1, which matchs vLLM 0.19.0. Please modify it. Thanks

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Thanks, updated 0.19.0 in b2e8284

Copy link
Copy Markdown
Collaborator

@tzhouam tzhouam left a comment

Choose a reason for hiding this comment

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

LGTM, please fix the vllm version

@tzhouam tzhouam changed the title [CI/Build] Add Dockerfile.cuda for NVIDIA GPU users [CI/Build] Add Dockerfile.cuda for NVIDIA GPU users [Skip-CI] Apr 5, 2026
@tzhouam tzhouam added the ready label to trigger buildkite CI label Apr 5, 2026
Signed-off-by: Hyoseop Song <crad_on25@naver.com>
@loveysuby loveysuby force-pushed the docker/add-dockerfile-cuda branch from b2e8284 to bd66bf4 Compare April 5, 2026 08:26
@tzhouam tzhouam enabled auto-merge (squash) April 5, 2026 08:36
@Gaohan123 Gaohan123 disabled auto-merge April 5, 2026 16:48
@Gaohan123 Gaohan123 merged commit b2b2ab0 into vllm-project:main Apr 5, 2026
5 checks passed
@loveysuby loveysuby deleted the docker/add-dockerfile-cuda branch April 6, 2026 02:24
loveysuby added a commit to loveysuby/vllm-omni that referenced this pull request Apr 6, 2026
…project#1439)

Signed-off-by: Hyoseop Song <crad_on25@naver.com>

Signed-off-by: Hyoseop Song  <crad_on25@naver.com>
skf-1999 pushed a commit to Semmer2/vllm-omni that referenced this pull request Apr 7, 2026
…roject#1439)

Signed-off-by: Hyoseop Song <crad_on25@naver.com>
Signed-off-by: Hyoseop Song  <crad_on25@naver.com>
vraiti pushed a commit to vraiti/vllm-omni that referenced this pull request Apr 9, 2026
…roject#1439)

Signed-off-by: Hyoseop Song <crad_on25@naver.com>
Signed-off-by: Hyoseop Song  <crad_on25@naver.com>
lengrongfu pushed a commit to lengrongfu/vllm-omni that referenced this pull request May 1, 2026
…roject#1439)

Signed-off-by: Hyoseop Song <crad_on25@naver.com>
Signed-off-by: Hyoseop Song  <crad_on25@naver.com>
clodaghwalsh17 pushed a commit to clodaghwalsh17/nm-vllm-omni-ent that referenced this pull request May 12, 2026
…roject#1439)

Signed-off-by: Hyoseop Song <crad_on25@naver.com>
Signed-off-by: Hyoseop Song  <crad_on25@naver.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready label to trigger buildkite CI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants