Skip to content

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

Open
loveysuby wants to merge 2 commits intovllm-project:mainfrom
loveysuby:docker/add-dockerfile-cuda
Open

[CI/Build] Add Dockerfile.cuda for NVIDIA GPU users#1439
loveysuby wants to merge 2 commits intovllm-project:mainfrom
loveysuby:docker/add-dockerfile-cuda

Conversation

@loveysuby
Copy link

@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.15.0):

DOCKER_BUILDKIT=1 docker build -f docker/Dockerfile.cuda \
  --build-arg BASE_IMAGE=vllm/vllm-openai:v0.14.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

@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".


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

CMD ["/bin/bash"]

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
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
@loveysuby loveysuby force-pushed the docker/add-dockerfile-cuda branch from 20682ee to ecc9813 Compare February 23, 2026 15:06
@hsliuustc0106
Copy link
Collaborator

@vllm-omni-reviewer

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants