Namespace
gpustack
Image / Tag
runner:rocm7.2-vllm0.24.0
Content Digest
sha256:04a0456f4d6cbbd3a6ec20999938c65d1170f178324d5c058dd430dff1b78c0b
Details
Created

2026-09-16 03:42:17 UTC

Size

11 GB

Content Digest
Labels
  • maintainer
    dl.mlsedevops@amd.com
  • org.opencontainers.image.version
    22.04

Environment
AITER_ROCM_ARCH

gfx942;gfx950

CCACHE_COMPILERCHECK

content

CCACHE_DIR

/root/.cache/ccache

DEBIAN_FRONTEND

noninteractive

HIP_FORCE_DEV_KERNARG

1

HSA_ENABLE_IPC_MODE_LEGACY

1

HSA_NO_SCRATCH_RECLAIM

1

KINETO_CONFIG

/app/libkineto.conf

LANG

en_US.UTF-8

LANGUAGE

en_US:en

LC_ALL

en_US.UTF-8

LD_LIBRARY_PATH

/opt/rocm/lib:/usr/local/lib:

MAX_JOBS

16

MORI_GPU_ARCHS

gfx942;gfx950

PATH

/opt/rocm/llvm/bin:/opt/rocm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PIP_DISABLE_PIP_VERSION_CHECK

1

PIP_NO_CACHE_DIR

1

PIP_ROOT_USER_ACTION

ignore

PYTHON_VERSION

3.12

PYTORCH_ROCM_ARCH

gfx90a;gfx942;gfx950;gfx1100;gfx1101;gfx1200;gfx1201;gfx1150;gfx1151

RAY_EXPERIMENTAL_NOSET_HIP_VISIBLE_DEVICES

1

RAY_EXPERIMENTAL_NOSET_ROCR_VISIBLE_DEVICES

1

ROCM_ARCHS

ROCM_HOME

/opt/rocm

ROCM_PATH

/opt/rocm

ROCM_VERSION

7.2.3

RUNAI_STREAMER_LOG_LEVEL

INFO

RUNAI_STREAMER_LOG_TO_STDERR

1

RUNAI_STREAMER_MEMORY_LIMIT

0

SAFETENSORS_FAST_GPU

1

SCCACHE_BUCKET

SCCACHE_ENDPOINT

SCCACHE_IDLE_TIMEOUT

SCCACHE_REGION

SCCACHE_S3_NO_CREDENTIALS

TOKENIZERS_PARALLELISM

false

UV_HTTP_TIMEOUT

500

UV_INDEX_STRATEGY

unsafe-best-match

UV_LINK_MODE

copy

UV_NO_CACHE

1

UV_PRERELEASE

allow

UV_SKIP_WHEEL_FILENAME_CHECK

1

UV_SYSTEM_PYTHON

1

VLLM_TORCH_ROCM_VERSION

7.2.3

VLLM_TORCH_VERSION

2.11.0

VLLM_VERSION

0.24.0


Layers

[#000] sha256:42041b00303d460a69e53c63f49a4e86fc48dd1149cfc79bf21abcad82ed3f75 - 0.26% (29.2 MB)

[#001] sha256:3a07dcd11d8d11d10b649982a5260f1d1d0cb621b259d64e83609a18424c92a4 - 0.0% (240 Bytes)

[#002] sha256:dfb4312294c51c0e55df65cba239098347fe8385374e918025c1dd3843088e86 - 61.54% (6.76 GB)

[#003] sha256:49f843952c8f760646efc32533b36bebfe542d9bd387ec9cf7b274b6f5ecbd69 - 0.0% (655 Bytes)

[#004] sha256:f962956abdbe32c461cd449183e91089c4c4b4d9fa62a34fc93cc9759abfcf5a - 0.0% (93 Bytes)

[#005] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)

[#006] sha256:db2c61f1f08b7b24f8c63f328e8b268230d36a3a23a0b92f241b3b6a575bbfaf - 1.32% (148 MB)

[#007] sha256:8e0ed450e2c65d4e493fffe942c6d80d3a3d7479f209aa952a36c0597a5a0a3d - 0.59% (66 MB)

[#008] sha256:22863909fc7016f31f6c04f201f50a23fa844197d59cdb01e9baf0de0e73ee44 - 0.04% (4.06 MB)

[#009] sha256:ea60500a06427a654e294d287f86c33161debe1a7c5936bd7ef47c50a384ca89 - 0.08% (9.11 MB)

[#010] sha256:5d617384c1b2236abf1ccaedbbe700caf0c20a41e46ce15b8711108a01fbd5a8 - 0.0% (229 Bytes)

[#011] sha256:24024ea90387d409baa71c0a4bb867e75fe263a9ce5511217e517f26fe706ace - 20.13% (2.21 GB)

[#012] sha256:2241b90363ad071f2de30a4485ea26118f6af247c48c4ff26cceb3613f2cb53d - 0.0% (398 Bytes)

[#013] sha256:96ca1c0eebc7bb4567560ed66011fb5577831c89b29867152481fe8d6a0b007d - 1.25% (141 MB)

[#014] sha256:498906ff243466198eaef7e6680330cdd0c56f410e04ca07915fd17b3d085da1 - 0.0% (92 Bytes)

[#015] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)

[#016] sha256:bc7f2bc34c41ef841116a9953f7b4cb0c16b6646619ae30237157760492bad66 - 0.22% (25 MB)

[#017] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)

[#018] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)

[#019] sha256:0881303773eabe50d2f0d53b4ccdf0e2ee796c0ca5d58d344d98844c115edea6 - 0.14% (15.9 MB)

[#020] sha256:9527279b26dad16a5e428a617cd201ba1f4d50696b983c8782ff6a9fd1231a3f - 0.0% (1.38 KB)

[#021] sha256:af76330ba1423643b8aaf2ee83f51dbad42c013716b93a45e6ebe7dccdc9aa9c - 0.0% (196 Bytes)

[#022] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)

[#023] sha256:e8721c40bf86af86be31aa8773e0be5a644270712493ec28a7f73045bf14a4de - 0.06% (6.73 MB)

[#024] sha256:fba33c47a67c5be54bf13247a8187917df5b77a42460f93368af8aab7cf6a669 - 6.95% (781 MB)

[#025] sha256:3ac9fce88a88356f2cf10bbd4498520e63b53ff33395018cb045ba0cc7646c2c - 0.33% (37.6 MB)

[#026] sha256:dc30599d06d4925fc98be9de8054fed8ff8edf6f8e210ec427dca58daf70b9fe - 0.0% (250 KB)

[#027] sha256:ab3f12b38a724ad629a4a92ce4777f75aef8646703d93e86870d87f342eba000 - 0.0% (258 KB)

[#028] sha256:b51cd5a085ea6892eefa993a619e596074a77101d12457cc559a713abc68be18 - 0.0% (9.13 KB)

[#029] sha256:f4b9dd252cb3baa56e84370ae562df428e46b66c78b9a3d5c216e863050a2ee0 - 0.0% (168 Bytes)

[#030] sha256:56c9be66ef94810f3cebc782042d3660bab4406d8735e71991562e6928ecc2d1 - 0.0% (493 Bytes)

[#031] sha256:864a100d923d3ce41c8a69ba21a74642cd6f510da8bcc521adbdb1169379d631 - 0.78% (87.4 MB)

[#032] sha256:4783b757c91d5cde2f9f004ebe1aa9da494055570d4b7c480e929b43be47889f - 0.59% (66.8 MB)

[#033] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)

[#034] sha256:4b3ac4962ebebccd8c94f790a252e718b126d6311a5930b83336c4757ff673b8 - 0.0% (79.1 KB)

[#035] sha256:c9d9c001d899391f93b0bc13f93f5b4db5f90c7ae3426a2747a5da72c1c0d772 - 1.82% (204 MB)

[#036] sha256:66658655179de023a12b828ac2db54dcdc01e5762582a73735335c8114b27e98 - 0.73% (82.5 MB)

[#037] sha256:5324505c7ede5b969c2289146aa272aa1f3af35091e2ac75b4021488cd864818 - 0.34% (38.1 MB)

[#038] sha256:b060a37dfc6950f9ff23851c641e17968a8c77bae06c4e5ebe663d5cef377bc6 - 2.56% (287 MB)

[#039] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)

[#040] sha256:aa14d93dc9dba1980344f8dbfcb9e76f78a6ea10ee644aef3b71e5be66523971 - 0.0% (11.5 KB)

[#041] sha256:85ba7448085d0a9c5032fbead1e260c3236875a94820519189e0af9c97c31459 - 0.15% (16.5 MB)

[#042] sha256:6d7bd42d6611927e744a742d9aca029a910928e9223188caffa18da143f7a812 - 0.12% (13.4 MB)


History
2026-04-10 09:47:41 UTC

/bin/sh -c #(nop) ARG RELEASE

2026-04-10 09:47:41 UTC

/bin/sh -c #(nop) ARG LAUNCHPAD_BUILD_ARCH

2026-04-10 09:47:41 UTC

/bin/sh -c #(nop) LABEL org.opencontainers.image.version=22.04

2026-04-10 09:47:43 UTC

/bin/sh -c #(nop) ADD file:da2cd86408d9354e8bd817c8a4b8635a1d788cd20d0d70061ce02a173e8cf902 in /

2026-04-10 09:47:44 UTC

/bin/sh -c #(nop) CMD ["/bin/bash"]

2026-05-05 01:00:42 UTC (buildkit.dockerfile.v0)

LABEL maintainer=dl.mlsedevops@amd.com

2026-05-05 01:00:42 UTC (buildkit.dockerfile.v0)

ARG ROCM_VERSION=5.3

2026-05-05 01:00:42 UTC (buildkit.dockerfile.v0)

ARG AMDGPU_VERSION=5.3

2026-05-05 01:00:42 UTC (buildkit.dockerfile.v0)

ARG APT_PREF

2026-05-05 01:00:42 UTC (buildkit.dockerfile.v0)

RUN |3 ROCM_VERSION=7.2.3 AMDGPU_VERSION=30.30.3 APT_PREF=Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600 /bin/sh -c echo "$APT_PREF" > /etc/apt/preferences.d/rocm-pin-600 # buildkit

2026-05-05 01:13:45 UTC (buildkit.dockerfile.v0)

RUN |3 ROCM_VERSION=7.2.3 AMDGPU_VERSION=30.30.3 APT_PREF=Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600 /bin/sh -c apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ca-certificates curl libnuma-dev gnupg && curl -sL https://repo.radeon.com/rocm/rocm.gpg.key | apt-key add - && printf "deb [arch=amd64] https://repo.radeon.com/rocm/apt/$ROCM_VERSION/ jammy main" | tee /etc/apt/sources.list.d/rocm.list && printf "deb [arch=amd64] https://repo.radeon.com/amdgpu/$AMDGPU_VERSION/ubuntu jammy main" | tee /etc/apt/sources.list.d/amdgpu.list && apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends sudo libelf1 kmod file python3-dev python3-pip rocm-dev rocm-libs build-essential && apt-get clean && rm -rf /var/lib/apt/lists/* # buildkit

2026-05-05 01:13:45 UTC (buildkit.dockerfile.v0)

RUN |3 ROCM_VERSION=7.2.3 AMDGPU_VERSION=30.30.3 APT_PREF=Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600 /bin/sh -c groupadd -g 109 render # buildkit

2026-06-12 22:48:08 UTC (buildkit.dockerfile.v0)

ENV PATH=/opt/rocm/llvm/bin:/opt/rocm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

2026-06-12 22:48:08 UTC (buildkit.dockerfile.v0)

ENV ROCM_PATH=/opt/rocm

2026-06-12 22:48:08 UTC (buildkit.dockerfile.v0)

ENV LD_LIBRARY_PATH=/opt/rocm/lib:/usr/local/lib:

2026-06-12 22:48:08 UTC (buildkit.dockerfile.v0)

ARG PYTORCH_ROCM_ARCH=gfx90a;gfx942;gfx950;gfx1100;gfx1101;gfx1200;gfx1201;gfx1150;gfx1151

2026-06-12 22:48:08 UTC (buildkit.dockerfile.v0)

ENV PYTORCH_ROCM_ARCH=gfx90a;gfx942;gfx950;gfx1100;gfx1101;gfx1200;gfx1201;gfx1150;gfx1151

2026-06-12 22:48:08 UTC (buildkit.dockerfile.v0)

ENV AITER_ROCM_ARCH=gfx942;gfx950

2026-06-12 22:48:08 UTC (buildkit.dockerfile.v0)

ENV MORI_GPU_ARCHS=gfx942;gfx950

2026-06-12 22:48:08 UTC (buildkit.dockerfile.v0)

ENV HSA_NO_SCRATCH_RECLAIM=1

2026-06-12 22:48:08 UTC (buildkit.dockerfile.v0)

ARG PYTHON_VERSION=3.12

2026-06-12 22:48:08 UTC (buildkit.dockerfile.v0)

ENV PYTHON_VERSION=3.12

2026-06-12 22:48:08 UTC (buildkit.dockerfile.v0)

RUN |2 PYTORCH_ROCM_ARCH=gfx90a;gfx942;gfx950;gfx1100;gfx1101;gfx1200;gfx1201;gfx1150;gfx1151 PYTHON_VERSION=3.12 /bin/sh -c mkdir -p /app # buildkit

2026-06-12 22:48:08 UTC (buildkit.dockerfile.v0)

WORKDIR /app

2026-06-12 22:48:08 UTC (buildkit.dockerfile.v0)

ENV DEBIAN_FRONTEND=noninteractive

2026-06-12 22:48:50 UTC (buildkit.dockerfile.v0)

RUN |2 PYTORCH_ROCM_ARCH=gfx90a;gfx942;gfx950;gfx1100;gfx1101;gfx1200;gfx1201;gfx1150;gfx1151 PYTHON_VERSION=3.12 /bin/sh -c apt-get update -y && apt-get install -y software-properties-common git curl sudo vim less libgfortran5 libopenmpi-dev libpci-dev liblzma-dev pkg-config && for i in 1 2 3; do add-apt-repository -y ppa:deadsnakes/ppa && break || { echo "Attempt $i failed, retrying in 5s..."; sleep 5; }; done && apt-get update -y && apt-get install -y python${PYTHON_VERSION} python${PYTHON_VERSION}-dev python${PYTHON_VERSION}-venv python${PYTHON_VERSION}-lib2to3 python-is-python3 && update-alternatives --install /usr/bin/python3 python3 /usr/bin/python${PYTHON_VERSION} 1 && update-alternatives --set python3 /usr/bin/python${PYTHON_VERSION} && ln -sf /usr/bin/python${PYTHON_VERSION}-config /usr/bin/python3-config && curl -sS https://bootstrap.pypa.io/get-pip.py | python${PYTHON_VERSION} && python3 --version && python3 -m pip --version # buildkit

2026-06-12 22:48:55 UTC (buildkit.dockerfile.v0)

RUN |2 PYTORCH_ROCM_ARCH=gfx90a;gfx942;gfx950;gfx1100;gfx1101;gfx1200;gfx1201;gfx1150;gfx1151 PYTHON_VERSION=3.12 /bin/sh -c pip install -U packaging 'cmake<4' ninja wheel 'setuptools<80' pybind11 Cython # buildkit

2026-06-12 22:49:01 UTC (buildkit.dockerfile.v0)

RUN |2 PYTORCH_ROCM_ARCH=gfx90a;gfx942;gfx950;gfx1100;gfx1101;gfx1200;gfx1201;gfx1150;gfx1151 PYTHON_VERSION=3.12 /bin/sh -c apt-get update && apt-get install -y libjpeg-dev libsox-dev libsox-fmt-all sox && rm -rf /var/lib/apt/lists/* # buildkit

2026-06-12 22:49:01 UTC (buildkit.dockerfile.v0)

ARG USE_SCCACHE

2026-06-12 22:49:01 UTC (buildkit.dockerfile.v0)

ARG SCCACHE_DOWNLOAD_URL

2026-06-12 22:49:01 UTC (buildkit.dockerfile.v0)

ARG SCCACHE_ENDPOINT

2026-06-12 22:49:01 UTC (buildkit.dockerfile.v0)

ARG SCCACHE_BUCKET_NAME

2026-06-12 22:49:01 UTC (buildkit.dockerfile.v0)

ARG SCCACHE_REGION_NAME

2026-06-12 22:49:01 UTC (buildkit.dockerfile.v0)

ARG SCCACHE_S3_NO_CREDENTIALS

2026-06-12 22:49:02 UTC (buildkit.dockerfile.v0)

RUN |8 PYTORCH_ROCM_ARCH=gfx90a;gfx942;gfx950;gfx1100;gfx1101;gfx1200;gfx1201;gfx1150;gfx1151 PYTHON_VERSION=3.12 USE_SCCACHE=1 SCCACHE_DOWNLOAD_URL= SCCACHE_ENDPOINT= SCCACHE_BUCKET_NAME=vllm-build-sccache SCCACHE_REGION_NAME=us-west-2 SCCACHE_S3_NO_CREDENTIALS=0 /bin/sh -c if [ "$USE_SCCACHE" = "1" ]; then echo "Installing sccache..." && SCCACHE_ARCH="x86_64" && SCCACHE_VERSION="v0.8.1" && SCCACHE_DL_URL="${SCCACHE_DOWNLOAD_URL:-https://github.com/mozilla/sccache/releases/download/${SCCACHE_VERSION}/sccache-${SCCACHE_VERSION}-${SCCACHE_ARCH}-unknown-linux-musl.tar.gz}" && curl -L -o /tmp/sccache.tar.gz ${SCCACHE_DL_URL} && tar -xzf /tmp/sccache.tar.gz -C /tmp && mv /tmp/sccache-${SCCACHE_VERSION}-${SCCACHE_ARCH}-unknown-linux-musl/sccache /usr/bin/sccache && chmod +x /usr/bin/sccache && rm -rf /tmp/sccache.tar.gz /tmp/sccache-${SCCACHE_VERSION}-${SCCACHE_ARCH}-unknown-linux-musl && sccache --version; fi # buildkit

2026-06-12 22:49:03 UTC (buildkit.dockerfile.v0)

RUN |8 PYTORCH_ROCM_ARCH=gfx90a;gfx942;gfx950;gfx1100;gfx1101;gfx1200;gfx1201;gfx1150;gfx1151 PYTHON_VERSION=3.12 USE_SCCACHE=1 SCCACHE_DOWNLOAD_URL= SCCACHE_ENDPOINT= SCCACHE_BUCKET_NAME=vllm-build-sccache SCCACHE_REGION_NAME=us-west-2 SCCACHE_S3_NO_CREDENTIALS=0 /bin/sh -c if [ "$USE_SCCACHE" = "1" ]; then echo "Setting up sccache wrappers for HIP compilation..." && mkdir -p /opt/sccache-wrappers && printf '#!/bin/bash\nexec sccache /opt/rocm/lib/llvm/bin/clang++ "$@"\n' > /opt/sccache-wrappers/clang++ && chmod +x /opt/sccache-wrappers/clang++ && printf '#!/bin/bash\nexec sccache /opt/rocm/lib/llvm/bin/clang "$@"\n' > /opt/sccache-wrappers/clang && chmod +x /opt/sccache-wrappers/clang && echo "sccache wrappers created in /opt/sccache-wrappers"; fi # buildkit

2026-06-12 22:49:03 UTC (buildkit.dockerfile.v0)

ARG USE_SCCACHE

2026-06-12 22:49:03 UTC (buildkit.dockerfile.v0)

ENV SCCACHE_BUCKET=vllm-build-sccache

2026-06-12 22:49:03 UTC (buildkit.dockerfile.v0)

ENV SCCACHE_REGION=us-west-2

2026-06-12 22:49:03 UTC (buildkit.dockerfile.v0)

ENV SCCACHE_S3_NO_CREDENTIALS=0

2026-06-12 22:49:03 UTC (buildkit.dockerfile.v0)

ENV SCCACHE_IDLE_TIMEOUT=0

2026-06-13 02:58:58 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c pip install /install/*.whl # buildkit

2026-06-13 02:58:58 UTC (buildkit.dockerfile.v0)

ARG BASE_IMAGE

2026-06-13 02:58:58 UTC (buildkit.dockerfile.v0)

ARG TRITON_BRANCH

2026-06-13 02:58:58 UTC (buildkit.dockerfile.v0)

ARG TRITON_REPO

2026-06-13 02:58:58 UTC (buildkit.dockerfile.v0)

ARG PYTORCH_BRANCH

2026-06-13 02:58:58 UTC (buildkit.dockerfile.v0)

ARG PYTORCH_VISION_BRANCH

2026-06-13 02:58:58 UTC (buildkit.dockerfile.v0)

ARG PYTORCH_REPO

2026-06-13 02:58:58 UTC (buildkit.dockerfile.v0)

ARG PYTORCH_VISION_REPO

2026-06-13 02:58:58 UTC (buildkit.dockerfile.v0)

ARG PYTORCH_AUDIO_BRANCH

2026-06-13 02:58:58 UTC (buildkit.dockerfile.v0)

ARG PYTORCH_AUDIO_REPO

2026-06-13 02:58:58 UTC (buildkit.dockerfile.v0)

ARG FA_BRANCH

2026-06-13 02:58:58 UTC (buildkit.dockerfile.v0)

ARG FA_REPO

2026-06-13 02:58:58 UTC (buildkit.dockerfile.v0)

ARG AITER_BRANCH

2026-06-13 02:58:58 UTC (buildkit.dockerfile.v0)

ARG AITER_REPO

2026-06-13 02:58:58 UTC (buildkit.dockerfile.v0)

ARG MORI_BRANCH

2026-06-13 02:58:58 UTC (buildkit.dockerfile.v0)

ARG MORI_REPO

2026-06-13 02:58:59 UTC (buildkit.dockerfile.v0)

RUN |15 BASE_IMAGE=rocm/dev-ubuntu-22.04:7.2.3-complete TRITON_BRANCH=0f380657 TRITON_REPO=https://github.com/ROCm/triton.git PYTORCH_BRANCH=d0c8b1f3 PYTORCH_VISION_BRANCH=v0.24.1 PYTORCH_REPO=https://github.com/ROCm/pytorch.git PYTORCH_VISION_REPO=https://github.com/pytorch/vision.git PYTORCH_AUDIO_BRANCH=v2.9.0 PYTORCH_AUDIO_REPO=https://github.com/pytorch/audio.git FA_BRANCH=0e60e394 FA_REPO=https://github.com/Dao-AILab/flash-attention.git AITER_BRANCH=v0.1.13.post1 AITER_REPO=https://github.com/ROCm/aiter.git MORI_BRANCH=v1.1.0 MORI_REPO=https://github.com/ROCm/mori.git /bin/sh -c echo "BASE_IMAGE: ${BASE_IMAGE}" > /app/versions.txt && echo "TRITON_BRANCH: ${TRITON_BRANCH}" >> /app/versions.txt && echo "TRITON_REPO: ${TRITON_REPO}" >> /app/versions.txt && echo "PYTORCH_BRANCH: ${PYTORCH_BRANCH}" >> /app/versions.txt && echo "PYTORCH_VISION_BRANCH: ${PYTORCH_VISION_BRANCH}" >> /app/versions.txt && echo "PYTORCH_REPO: ${PYTORCH_REPO}" >> /app/versions.txt && echo "PYTORCH_VISION_REPO: ${PYTORCH_VISION_REPO}" >> /app/versions.txt && echo "PYTORCH_AUDIO_BRANCH: ${PYTORCH_AUDIO_BRANCH}" >> /app/versions.txt && echo "PYTORCH_AUDIO_REPO: ${PYTORCH_AUDIO_REPO}" >> /app/versions.txt && echo "FA_BRANCH: ${FA_BRANCH}" >> /app/versions.txt && echo "FA_REPO: ${FA_REPO}" >> /app/versions.txt && echo "AITER_BRANCH: ${AITER_BRANCH}" >> /app/versions.txt && echo "AITER_REPO: ${AITER_REPO}" >> /app/versions.txt && echo "MORI_BRANCH: ${MORI_BRANCH}" >> /app/versions.txt && echo "MORI_REPO: ${MORI_REPO}" >> /app/versions.txt # buildkit

2026-06-29 08:34:52 UTC (buildkit.dockerfile.v0)

ARG ARG_PYTORCH_ROCM_ARCH

2026-06-29 08:34:52 UTC (buildkit.dockerfile.v0)

ENV PYTORCH_ROCM_ARCH=gfx90a;gfx942;gfx950;gfx1100;gfx1101;gfx1200;gfx1201;gfx1150;gfx1151

2026-06-29 08:34:52 UTC (buildkit.dockerfile.v0)

RUN |1 ARG_PYTORCH_ROCM_ARCH= /bin/sh -c apt-get update -q -y && apt-get install -q -y sqlite3 libsqlite3-dev libfmt-dev libmsgpack-dev libsuitesparse-dev apt-transport-https ca-certificates wget curl libnuma-dev ccache mold # buildkit

2026-06-29 08:34:53 UTC (buildkit.dockerfile.v0)

RUN |1 ARG_PYTORCH_ROCM_ARCH= /bin/sh -c python3 -m pip install --upgrade pip # buildkit

2026-06-29 08:34:53 UTC (buildkit.dockerfile.v0)

ARG USE_SCCACHE

2026-06-29 08:34:54 UTC (buildkit.dockerfile.v0)

RUN |2 ARG_PYTORCH_ROCM_ARCH= USE_SCCACHE=1 /bin/sh -c if [ "$USE_SCCACHE" != "1" ]; then apt-get purge -y sccache || true; python3 -m pip uninstall -y sccache || true; rm -f "$(which sccache)" || true; fi # buildkit

2026-06-29 08:34:56 UTC (buildkit.dockerfile.v0)

RUN |2 ARG_PYTORCH_ROCM_ARCH= USE_SCCACHE=1 /bin/sh -c curl -LsSf --retry 3 --retry-delay 5 https://astral.sh/uv/install.sh -o /tmp/uv-install.sh && env UV_INSTALL_DIR="/usr/local/bin" sh /tmp/uv-install.sh && rm -f /tmp/uv-install.sh && uv --version # buildkit

2026-06-29 08:34:56 UTC (buildkit.dockerfile.v0)

ENV UV_HTTP_TIMEOUT=500

2026-06-29 08:34:56 UTC (buildkit.dockerfile.v0)

ENV UV_INDEX_STRATEGY=unsafe-best-match

2026-06-29 08:34:56 UTC (buildkit.dockerfile.v0)

ENV UV_LINK_MODE=copy

2026-06-29 08:34:56 UTC (buildkit.dockerfile.v0)

ENV CCACHE_DIR=/root/.cache/ccache

2026-06-29 08:34:56 UTC (buildkit.dockerfile.v0)

ENV CCACHE_COMPILERCHECK=content

2026-06-29 08:34:56 UTC (buildkit.dockerfile.v0)

ARG max_jobs

2026-06-29 08:34:56 UTC (buildkit.dockerfile.v0)

ENV MAX_JOBS=16

2026-06-29 08:34:56 UTC (buildkit.dockerfile.v0)

ARG USE_SCCACHE

2026-06-29 08:34:56 UTC (buildkit.dockerfile.v0)

ARG SCCACHE_DOWNLOAD_URL

2026-06-29 08:34:56 UTC (buildkit.dockerfile.v0)

ARG SCCACHE_ENDPOINT

2026-06-29 08:34:56 UTC (buildkit.dockerfile.v0)

ARG SCCACHE_BUCKET_NAME

2026-06-29 08:34:56 UTC (buildkit.dockerfile.v0)

ARG SCCACHE_REGION_NAME

2026-06-29 08:34:56 UTC (buildkit.dockerfile.v0)

ARG SCCACHE_S3_NO_CREDENTIALS

2026-06-29 08:34:57 UTC (buildkit.dockerfile.v0)

RUN |9 ARG_PYTORCH_ROCM_ARCH= USE_SCCACHE=1 max_jobs=16 USE_SCCACHE=1 SCCACHE_DOWNLOAD_URL= SCCACHE_ENDPOINT= SCCACHE_BUCKET_NAME=vllm-build-sccache SCCACHE_REGION_NAME=us-west-2 SCCACHE_S3_NO_CREDENTIALS=0 /bin/sh -c if [ "$USE_SCCACHE" = "1" ]; then if command -v sccache >/dev/null 2>&1; then echo "sccache already installed, skipping installation"; sccache --version; else echo "Installing sccache..." && SCCACHE_ARCH="x86_64" && SCCACHE_VERSION="v0.8.1" && SCCACHE_DL_URL="${SCCACHE_DOWNLOAD_URL:-https://github.com/mozilla/sccache/releases/download/${SCCACHE_VERSION}/sccache-${SCCACHE_VERSION}-${SCCACHE_ARCH}-unknown-linux-musl.tar.gz}" && curl -L -o /tmp/sccache.tar.gz ${SCCACHE_DL_URL} && tar -xzf /tmp/sccache.tar.gz -C /tmp && mv /tmp/sccache-${SCCACHE_VERSION}-${SCCACHE_ARCH}-unknown-linux-musl/sccache /usr/bin/sccache && chmod +x /usr/bin/sccache && rm -rf /tmp/sccache.tar.gz /tmp/sccache-${SCCACHE_VERSION}-${SCCACHE_ARCH}-unknown-linux-musl && sccache --version; fi; fi # buildkit

2026-06-29 08:34:57 UTC (buildkit.dockerfile.v0)

ARG USE_SCCACHE

2026-06-29 08:34:57 UTC (buildkit.dockerfile.v0)

ENV SCCACHE_BUCKET=vllm-build-sccache

2026-06-29 08:34:57 UTC (buildkit.dockerfile.v0)

ENV SCCACHE_REGION=us-west-2

2026-06-29 08:34:57 UTC (buildkit.dockerfile.v0)

ENV SCCACHE_S3_NO_CREDENTIALS=0

2026-06-29 08:34:57 UTC (buildkit.dockerfile.v0)

ENV SCCACHE_IDLE_TIMEOUT=0

2026-06-29 08:34:57 UTC (buildkit.dockerfile.v0)

ARG COMMON_WORKDIR

2026-06-29 08:34:57 UTC (buildkit.dockerfile.v0)

WORKDIR /app

2026-06-29 08:34:57 UTC (buildkit.dockerfile.v0)

ARG NIC_BACKEND

2026-06-29 08:34:57 UTC (buildkit.dockerfile.v0)

ARG AINIC_VERSION

2026-06-29 08:34:57 UTC (buildkit.dockerfile.v0)

ARG UBUNTU_CODENAME

2026-06-29 08:35:18 UTC (buildkit.dockerfile.v0)

RUN |3 NIC_BACKEND=all AINIC_VERSION=1.117.3-hydra UBUNTU_CODENAME=jammy /bin/sh -c /bin/bash -lc 'set -euo pipefail; install_ainic() { apt-get update && apt-get install -y --no-install-recommends ca-certificates curl gnupg apt-transport-https; rm -rf /var/lib/apt/lists/*; mkdir -p /etc/apt/keyrings; curl -fsSL https://repo.radeon.com/rocm/rocm.gpg.key | gpg --dearmor > /etc/apt/keyrings/amdainic.gpg; echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/amdainic.gpg] https://repo.radeon.com/amdainic/pensando/ubuntu/${AINIC_VERSION} ${UBUNTU_CODENAME} main" > /etc/apt/sources.list.d/amdainic.list; apt-get update && apt-get install -y --no-install-recommends libionic-dev ionic-common ; rm -rf /var/lib/apt/lists/*; }; install_bnxt() { install -m 0755 -d /etc/apt/keyrings; curl -fsSL https://packages.broadcom.com/artifactory/api/security/keypair/PackagesKey/public -o /etc/apt/keyrings/broadcom-nic.asc; chmod a+r /etc/apt/keyrings/broadcom-nic.asc; echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/broadcom-nic.asc] https://packages.broadcom.com/artifactory/ethernet-nic-debian-public jammy main" > /etc/apt/sources.list.d/broadcom-nic.list; apt-get update && apt-get install -y --no-install-recommends bnxt-rocelib=235.2.86.0 ; cp -a /usr/local/lib/x86_64-linux-gnu/libbnxt_re* /usr/local/lib/; ldconfig; rm -rf /var/lib/apt/lists/*; }; echo "[MORI] Install MoRI proxy deps"; pip install --quiet --ignore-installed blinker && pip install --quiet quart msgpack aiohttp pyzmq; echo "[MORI] NIC_BACKEND=${NIC_BACKEND}"; case "${NIC_BACKEND}" in none) ;; all) install_ainic; install_bnxt ;; ainic) install_ainic ;; bnxt) install_bnxt ;; *) echo "ERROR: unknown NIC_BACKEND=${NIC_BACKEND}. Use one of: none, ainic, bnxt, all"; exit 2 ;; esac' # buildkit

2026-06-29 08:35:27 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c python3 -m pip install --upgrade pip && rm -rf /var/lib/apt/lists/* # buildkit

2026-06-29 08:35:28 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c rm -f /usr/bin/sccache || true && rm -rf /opt/sccache-wrappers || true # buildkit

2026-06-29 08:35:28 UTC (buildkit.dockerfile.v0)

ENV SCCACHE_BUCKET=

2026-06-29 08:35:28 UTC (buildkit.dockerfile.v0)

ENV SCCACHE_REGION=

2026-06-29 08:35:28 UTC (buildkit.dockerfile.v0)

ENV SCCACHE_ENDPOINT=

2026-06-29 08:35:28 UTC (buildkit.dockerfile.v0)

ENV SCCACHE_S3_NO_CREDENTIALS=

2026-06-29 08:35:28 UTC (buildkit.dockerfile.v0)

ENV SCCACHE_IDLE_TIMEOUT=

2026-06-29 08:35:28 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c case "$(which python3)" in *"/opt/conda/envs/py_3.9"*) rm -rf /opt/conda/envs/py_3.9/lib/python3.9/site-packages/numpy-1.20.3.dist-info/;; *) ;; esac # buildkit

2026-06-29 08:35:30 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c uv pip install --system --upgrade huggingface-hub[cli] # buildkit

2026-06-29 08:41:07 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c cd /install && uv pip install --system -r requirements/rocm.txt && pip uninstall -y vllm && uv pip install --system *.whl # buildkit

2026-06-29 08:41:09 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c uv pip install --system /rixl_install/*.whl # buildkit

2026-06-29 08:41:09 UTC (buildkit.dockerfile.v0)

ARG COMMON_WORKDIR

2026-06-29 08:41:09 UTC (buildkit.dockerfile.v0)

ARG BASE_IMAGE

2026-06-29 08:41:09 UTC (buildkit.dockerfile.v0)

ARG NIC_BACKEND

2026-06-29 08:41:09 UTC (buildkit.dockerfile.v0)

ARG AINIC_VERSION

2026-06-29 08:41:10 UTC (buildkit.dockerfile.v0)

COPY /benchmarks /app/vllm/benchmarks # buildkit

2026-06-29 08:41:10 UTC (buildkit.dockerfile.v0)

COPY /examples /app/vllm/examples # buildkit

2026-06-29 08:41:10 UTC (buildkit.dockerfile.v0)

COPY /docker /app/vllm/docker # buildkit

2026-06-29 08:41:10 UTC (buildkit.dockerfile.v0)

ENV HSA_ENABLE_IPC_MODE_LEGACY=1

2026-06-29 08:41:10 UTC (buildkit.dockerfile.v0)

ENV TOKENIZERS_PARALLELISM=false

2026-06-29 08:41:10 UTC (buildkit.dockerfile.v0)

ENV SAFETENSORS_FAST_GPU=1

2026-06-29 08:41:10 UTC (buildkit.dockerfile.v0)

ENV HIP_FORCE_DEV_KERNARG=1

2026-06-29 08:41:11 UTC (buildkit.dockerfile.v0)

RUN |4 COMMON_WORKDIR=/app BASE_IMAGE=public.ecr.aws/q9t5s3a7/vllm-release-repo:99423d0319a1f0ff-rocm-base NIC_BACKEND=all AINIC_VERSION=1.117.3-hydra /bin/sh -c echo "ROCTRACER_MAX_EVENTS=10000000" > ${COMMON_WORKDIR}/libkineto.conf # buildkit

2026-06-29 08:41:11 UTC (buildkit.dockerfile.v0)

ENV KINETO_CONFIG=/app/libkineto.conf

2026-06-29 08:41:12 UTC (buildkit.dockerfile.v0)

RUN |4 COMMON_WORKDIR=/app BASE_IMAGE=public.ecr.aws/q9t5s3a7/vllm-release-repo:99423d0319a1f0ff-rocm-base NIC_BACKEND=all AINIC_VERSION=1.117.3-hydra /bin/sh -c echo "VLLM_BASE_IMAGE=${BASE_IMAGE}" >> ${COMMON_WORKDIR}/versions.txt && echo "MORI_NIC_BACKEND=${NIC_BACKEND}" >> ${COMMON_WORKDIR}/versions.txt && echo "AINIC_VERSION=${AINIC_VERSION}" >> ${COMMON_WORKDIR}/versions.txt # buildkit

2026-06-29 08:41:12 UTC (buildkit.dockerfile.v0)

CMD ["/bin/bash"]

2026-06-29 08:41:12 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["vllm" "serve"]

2026-07-01 03:52:33 UTC (buildkit.dockerfile.v0)

SHELL [/bin/bash -eo pipefail -c]

2026-07-01 03:52:33 UTC (buildkit.dockerfile.v0)

ARG TARGETPLATFORM=linux/amd64

2026-07-01 03:52:33 UTC (buildkit.dockerfile.v0)

ARG TARGETOS=linux

2026-07-01 03:52:33 UTC (buildkit.dockerfile.v0)

ARG TARGETARCH=amd64

2026-07-01 03:52:33 UTC (buildkit.dockerfile.v0)

ENV DEBIAN_FRONTEND=noninteractive LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8

2026-07-01 03:52:33 UTC (buildkit.dockerfile.v0)

RUN |3 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 /bin/bash -eo pipefail -c # Tools # Refresh apt-get update -y && apt-get install -y --no-install-recommends \ software-properties-common apt-transport-https \ ca-certificates gnupg2 lsb-release gnupg-agent \ && apt-get update -y # Install apt-get install -y --no-install-recommends \ ca-certificates build-essential binutils bash openssl \ curl wget aria2 \ git git-lfs \ unzip xz-utils \ tzdata locales \ iproute2 iputils-ping ifstat net-tools dnsutils pciutils ipmitool \ rdma-core rdmacm-utils infiniband-diags \ procps sysstat htop \ tini vim jq bc tree # Update locale localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 # Update timezone rm -f /etc/localtime \ && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo "Asia/Shanghai" > /etc/timezone \ && dpkg-reconfigure --frontend noninteractive tzdata # Cleanup rm -rf /var/tmp/* \ && rm -rf /tmp/* \ && rm -rf /var/cache/apt # buildkit

2026-07-01 03:52:43 UTC (buildkit.dockerfile.v0)

RUN |3 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 /bin/bash -eo pipefail -c # C Buildkit apt-get install -y --no-install-recommends \ ffmpeg libjpeg-dev libpng-dev libtiff-dev libwebp-dev \ make ninja-build pkg-config ccache # Cleanup rm -rf /var/tmp/* \ && rm -rf /tmp/* \ && rm -rf /var/cache/apt # buildkit

2026-07-01 03:52:43 UTC (buildkit.dockerfile.v0)

ARG PYTHON_VERSION=3.12

2026-07-01 03:52:43 UTC (buildkit.dockerfile.v0)

ENV PYTHON_VERSION=3.12

2026-07-01 03:52:43 UTC (buildkit.dockerfile.v0)

RUN |4 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 PYTHON_VERSION=3.12 /bin/bash -eo pipefail -c # Python # Update alternatives if ! command -v python >/dev/null 2>&1 \ && command -v python${PYTHON_VERSION} >/dev/null 2>&1; then update-alternatives --install /usr/bin/python python $(which python${PYTHON_VERSION}) 1 fi # buildkit

2026-07-01 03:52:43 UTC (buildkit.dockerfile.v0)

ENV PIP_NO_CACHE_DIR=1 PIP_DISABLE_PIP_VERSION_CHECK=1 PIP_ROOT_USER_ACTION=ignore

2026-07-01 03:52:44 UTC (buildkit.dockerfile.v0)

RUN |4 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 PYTHON_VERSION=3.12 /bin/bash -eo pipefail -c # Buildkit cat <<EOT >/tmp/requirements.txt build EOT pip install -r /tmp/requirements.txt # Cleanup rm -rf /var/tmp/* \ && rm -rf /tmp/* # buildkit

2026-07-01 03:52:44 UTC (buildkit.dockerfile.v0)

ARG ROCM_VERSION=7.2.3

2026-07-01 03:52:44 UTC (buildkit.dockerfile.v0)

ARG ROCM_ARCHS

2026-07-01 03:52:44 UTC (buildkit.dockerfile.v0)

ENV ROCM_HOME=/opt/rocm ROCM_VERSION=7.2.3 ROCM_ARCHS=

2026-07-01 03:52:44 UTC (buildkit.dockerfile.v0)

ENV UV_SYSTEM_PYTHON=1 UV_PRERELEASE=allow UV_SKIP_WHEEL_FILENAME_CHECK=1 UV_NO_CACHE=1 UV_HTTP_TIMEOUT=500 UV_INDEX_STRATEGY=unsafe-best-match

2026-07-01 03:52:44 UTC (buildkit.dockerfile.v0)

ARG VLLM_VERSION=0.24.0

2026-07-01 03:52:44 UTC (buildkit.dockerfile.v0)

ARG VLLM_TORCH_VERSION=2.11.0

2026-07-01 03:52:44 UTC (buildkit.dockerfile.v0)

ARG VLLM_TORCH_ROCM_VERSION=7.2.3

2026-07-01 03:52:44 UTC (buildkit.dockerfile.v0)

ENV VLLM_VERSION=0.24.0 VLLM_TORCH_VERSION=2.11.0 VLLM_TORCH_ROCM_VERSION=7.2.3

2026-07-01 03:52:44 UTC (buildkit.dockerfile.v0)

SHELL [/bin/bash -eo pipefail -c]

2026-07-01 03:52:44 UTC (buildkit.dockerfile.v0)

ARG TARGETPLATFORM=linux/amd64

2026-07-01 03:52:44 UTC (buildkit.dockerfile.v0)

ARG TARGETOS=linux

2026-07-01 03:52:44 UTC (buildkit.dockerfile.v0)

ARG TARGETARCH=amd64

2026-07-01 03:52:50 UTC (buildkit.dockerfile.v0)

RUN |9 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 PYTHON_VERSION=3.12 ROCM_VERSION=7.2.3 ROCM_ARCHS= VLLM_VERSION=0.24.0 VLLM_TORCH_VERSION=2.11.0 VLLM_TORCH_ROCM_VERSION=7.2.3 /bin/bash -eo pipefail -c # Ray # Install Ray Client and Default. # Pinned to 2.54.0: ray 2.55 (ray-project/ray#61029) breaks distributed # ray.init when the driver has no co-located raylet (gpustack split containers). RAY_VERSION=2.54.0 cat <<EOT >/tmp/requirements.txt ray[cgraph]==${RAY_VERSION} ray[client]==${RAY_VERSION} ray[default]==${RAY_VERSION} EOT uv pip install \ -r /tmp/requirements.txt # Cleanup rm -rf /var/tmp/* \ && rm -rf /tmp/* # buildkit

2026-07-01 04:04:36 UTC (buildkit.dockerfile.v0)

RUN |9 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 PYTHON_VERSION=3.12 ROCM_VERSION=7.2.3 ROCM_ARCHS= VLLM_VERSION=0.24.0 VLLM_TORCH_VERSION=2.11.0 VLLM_TORCH_ROCM_VERSION=7.2.3 /bin/bash -eo pipefail -c # LMCache # Install uv pip install --no-build-isolation \ /lmcache/workspace/*.whl # Cleanup rm -rf /var/tmp/* \ && rm -rf /tmp/* # buildkit

2026-07-01 04:06:17 UTC (buildkit.dockerfile.v0)

RUN |9 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 PYTHON_VERSION=3.12 ROCM_VERSION=7.2.3 ROCM_ARCHS= VLLM_VERSION=0.24.0 VLLM_TORCH_VERSION=2.11.0 VLLM_TORCH_ROCM_VERSION=7.2.3 /bin/bash -eo pipefail -c # MoonCake # Install uv pip install --no-build-isolation \ /mooncake/workspace/*.whl # Cleanup rm -rf /var/tmp/* \ && rm -rf /tmp/* # buildkit

2026-07-01 04:06:25 UTC (buildkit.dockerfile.v0)

RUN |9 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 PYTHON_VERSION=3.12 ROCM_VERSION=7.2.3 ROCM_ARCHS= VLLM_VERSION=0.24.0 VLLM_TORCH_VERSION=2.11.0 VLLM_TORCH_ROCM_VERSION=7.2.3 /bin/bash -eo pipefail -c # Omni if [[ ! -d /omni/workspace ]]; then echo "Skipping vLLM Omni installation for ${TARGETARCH}..." exit 0 fi # Install uv pip install --no-build-isolation \ /omni/workspace/*.whl # Dependencies cat <<EOT >/tmp/requirements.txt onnxruntime-rocm sox EOT uv pip install \ -r /tmp/requirements.txt # Cleanup rm -rf /var/tmp/* \ && rm -rf /tmp/* # buildkit

2026-07-01 04:06:25 UTC (buildkit.dockerfile.v0)

RUN |9 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 PYTHON_VERSION=3.12 ROCM_VERSION=7.2.3 ROCM_ARCHS= VLLM_VERSION=0.24.0 VLLM_TORCH_VERSION=2.11.0 VLLM_TORCH_ROCM_VERSION=7.2.3 /bin/bash -eo pipefail -c # Postprocess # Review uv pip tree \ --package vllm \ --package vllm-omni \ --package flash-attn \ --package triton \ --package aiter \ --package torch \ --package lmcache \ --package mooncake-transfer-engine \ --package ray # buildkit

2026-07-01 04:06:27 UTC (buildkit.dockerfile.v0)

RUN |9 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 PYTHON_VERSION=3.12 ROCM_VERSION=7.2.3 ROCM_ARCHS= VLLM_VERSION=0.24.0 VLLM_TORCH_VERSION=2.11.0 VLLM_TORCH_ROCM_VERSION=7.2.3 /bin/bash -eo pipefail -c # Patch tree -hs /workspace/patches pushd $(pip show vllm | grep Location: | cut -d" " -f 2) \ && patch -p1 < /workspace/patches/vllm/*.patch if pip show vllm_omni > /dev/null 2>&1; then \ pushd $(pip show vllm_omni | grep Location: | cut -d" " -f 2) \ && patch -p1 < /workspace/patches/vllm_omni/*.patch; \ fi # buildkit

2026-07-01 04:06:28 UTC (buildkit.dockerfile.v0)

RUN |9 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 PYTHON_VERSION=3.12 ROCM_VERSION=7.2.3 ROCM_ARCHS= VLLM_VERSION=0.24.0 VLLM_TORCH_VERSION=2.11.0 VLLM_TORCH_ROCM_VERSION=7.2.3 /bin/bash -eo pipefail -c # Dependencies # Install cat <<EOT >/tmp/requirements.txt # audio extras librosa soundfile mistral_common[audio] # petit extras petit-kernel # tokenizer extras fastokens==0.2.0 EOT uv pip install \ -r /tmp/requirements.txt # Cleanup rm -rf /var/tmp/* \ && rm -rf /tmp/* # buildkit

2026-07-01 04:06:28 UTC (buildkit.dockerfile.v0)

ENV RAY_EXPERIMENTAL_NOSET_ROCR_VISIBLE_DEVICES=1 RAY_EXPERIMENTAL_NOSET_HIP_VISIBLE_DEVICES=1 SAFETENSORS_FAST_GPU=1 RUNAI_STREAMER_MEMORY_LIMIT=0 RUNAI_STREAMER_LOG_TO_STDERR=1 RUNAI_STREAMER_LOG_LEVEL=INFO

2026-07-01 04:06:28 UTC (buildkit.dockerfile.v0)

WORKDIR /

2026-07-01 04:06:28 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["tini" "--"]

2026-09-16 03:42:17 UTC (buildkit.dockerfile.v0)

SHELL [/bin/bash -eo pipefail -c]

2026-09-16 03:42:17 UTC (buildkit.dockerfile.v0)

ARG TARGETPLATFORM=linux/amd64

2026-09-16 03:42:17 UTC (buildkit.dockerfile.v0)

ARG TARGETOS=linux

2026-09-16 03:42:17 UTC (buildkit.dockerfile.v0)

ARG TARGETARCH=amd64

2026-09-16 03:42:17 UTC (buildkit.dockerfile.v0)

RUN |3 TARGETPLATFORM=linux/amd64 TARGETOS=linux TARGETARCH=amd64 /bin/bash -eo pipefail -c # Give MooncakeConnector the Prometheus registration MultiConnector requires VLLM_DIR="$(python3 -c 'import os, vllm; print(os.path.dirname(vllm.__file__))')" MOONCAKE_DIR="${VLLM_DIR}/distributed/kv_transfer/kv_connector/v1/mooncake" # Refuse to guess at a layout this patch was not written against. test -f "${MOONCAKE_DIR}/stats.py" test -f "${MOONCAKE_DIR}/mooncake_connector.py" # Idempotent: a re-run over an already patched image must not append twice. if grep -q "class MooncakePromMetrics" "${MOONCAKE_DIR}/stats.py"; then echo "[info] MooncakePromMetrics is already present; nothing to append." exit 0 fi cat >>"${MOONCAKE_DIR}/stats.py" <<'PYEOF' from vllm.config import VllmConfig from vllm.distributed.kv_transfer.kv_connector.v1.metrics import ( KVConnectorPromMetrics, PromMetric, PromMetricT, ) from vllm.v1.metrics.utils import create_metric_per_engine class MooncakePromMetrics(KVConnectorPromMetrics): """Prometheus metrics for Mooncake point-to-point KV transfers. Mirrors NixlPromMetrics: the histograms take one observation per recorded transfer, and the counters take a list of 1s, which is the shape MooncakeKVConnectorStats.reset() already produces. The metric names are prefixed `vllm:mooncake_` rather than `vllm:mooncake_store_`, which MooncakeStorePromMetrics owns: the two connectors can be active in the same engine through a MultiConnector, and one namespace for both would merge a direct engine-to-engine transfer with a round trip to the shared store. """ def __init__( self, vllm_config: VllmConfig, metric_types: dict[type[PromMetric], type[PromMetricT]], labelnames: list[str], per_engine_labelvalues: dict[int, list[object]], ): super().__init__(vllm_config, metric_types, labelnames, per_engine_labelvalues) duration_buckets = [ 0.001, 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.2, 0.3, 0.5, 0.75, 1.0, 5.0, ] histogram_xfer_time = self._histogram_cls( name="vllm:mooncake_xfer_time_seconds", documentation="Histogram of transfer duration for Mooncake KV cache transfers.", buckets=duration_buckets, labelnames=labelnames, ) self.histogram_xfer_time = create_metric_per_engine( histogram_xfer_time, self.per_engine_labelvalues ) # Uniform 2KiB to 16GiB range, as NixlPromMetrics uses. byte_buckets = [2 ** (10 + i) for i in range(1, 25, 2)] histogram_bytes_transferred = self._histogram_cls( name="vllm:mooncake_bytes_transferred", documentation="Histogram of bytes transferred per Mooncake KV cache transfer.", buckets=byte_buckets, labelnames=labelnames, ) self.histogram_bytes_transferred = create_metric_per_engine( histogram_bytes_transferred, self.per_engine_labelvalues ) descriptor_buckets = [10, 20, 30, 50, 75, 100, 200, 300, 500, 750, 1000] histogram_num_descriptors = self._histogram_cls( name="vllm:mooncake_num_descriptors", documentation="Histogram of descriptors per Mooncake KV cache transfer.", buckets=descriptor_buckets, labelnames=labelnames, ) self.histogram_num_descriptors = create_metric_per_engine( histogram_num_descriptors, self.per_engine_labelvalues ) counter_num_failed_transfers = self._counter_cls( name="vllm:mooncake_num_failed_transfers", documentation="Number of failed Mooncake KV cache transfers.", labelnames=labelnames, ) self.counter_num_failed_transfers = create_metric_per_engine( counter_num_failed_transfers, self.per_engine_labelvalues ) counter_num_failed_recvs = self._counter_cls( name="vllm:mooncake_num_failed_recvs", documentation="Number of failed Mooncake KV cache receives.", labelnames=labelnames, ) self.counter_num_failed_recvs = create_metric_per_engine( counter_num_failed_recvs, self.per_engine_labelvalues ) counter_num_kv_expired_reqs = self._counter_cls( name="vllm:mooncake_num_kv_expired_reqs", documentation="Number of requests whose Mooncake KV blocks expired.", labelnames=labelnames, ) self.counter_num_kv_expired_reqs = create_metric_per_engine( counter_num_kv_expired_reqs, self.per_engine_labelvalues ) def observe(self, transfer_stats_data: dict[str, Any], engine_idx: int = 0): # A key absent from the payload is skipped rather than raising: the stats # container's key set belongs to the connector and may grow or shrink # between releases, and a metrics path is the wrong place to fail an engine. for prom_obj, key in zip( [ self.histogram_xfer_time, self.histogram_bytes_transferred, self.histogram_num_descriptors, ], ["transfer_duration", "bytes_transferred", "num_descriptors"], ): for list_item in transfer_stats_data.get(key, ()): prom_obj[engine_idx].observe(list_item) for counter_obj, key in zip( [ self.counter_num_failed_transfers, self.counter_num_failed_recvs, self.counter_num_kv_expired_reqs, ], ["num_failed_transfers", "num_failed_recvs", "num_kv_expired_reqs"], ): for list_item in transfer_stats_data.get(key, ()): counter_obj[engine_idx].inc(list_item) PYEOF cat >>"${MOONCAKE_DIR}/mooncake_connector.py" <<'PYEOF' def _build_mooncake_prom_metrics( cls, vllm_config, metric_types, labelnames, per_engine_labelvalues ): # Imported here rather than at module scope: this file already imports from # .stats, and keeping the dependency inside the call leaves the module's # import graph exactly as it was. from vllm.distributed.kv_transfer.kv_connector.v1.mooncake.stats import ( MooncakePromMetrics, ) return MooncakePromMetrics( vllm_config, metric_types, labelnames, per_engine_labelvalues ) # Bound by assignment rather than written into the class body, so that this patch # stays an append and needs no anchor inside a file that differs between releases. MooncakeConnector.build_prom_metrics = classmethod(_build_mooncake_prom_metrics) PYEOF # Assert the patch landed. Both greps are POSITIVE: a negated grep is exempt from # set -e, so the inverted form would pass over a failure. grep -q "class MooncakePromMetrics" "${MOONCAKE_DIR}/stats.py" grep -q "MooncakeConnector.build_prom_metrics = classmethod" "${MOONCAKE_DIR}/mooncake_connector.py" # Import it for real. The greps above prove the text is there; this proves it # parses and that every name it reaches for resolves in this image. python3 -c " from vllm.distributed.kv_transfer.kv_connector.v1.mooncake.stats import MooncakePromMetrics from vllm.distributed.kv_transfer.kv_connector.v1.metrics import KVConnectorPromMetrics assert issubclass(MooncakePromMetrics, KVConnectorPromMetrics) assert MooncakePromMetrics.observe is not KVConnectorPromMetrics.observe print('[info] MooncakePromMetrics imports and overrides observe.') " # Cleanup rm -rf /var/tmp/* \ && rm -rf /tmp/* # buildkit

2026-09-16 03:42:17 UTC (buildkit.dockerfile.v0)

WORKDIR /

2026-09-16 03:42:17 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["tini" "--"]

Danger Zone
Delete Tag

Please be careful as this will not just delete the reference but also the actual content!

For example when you have latest and v1.2.3 both pointing to the same image
the deletion of latest will also permanently remove v1.2.3.

Delete