Prhub

#48126 Add XPU nightly and release image publishing to DockerHub

原始 PR 作者 wendyliu235 合并时间 2026-07-10 15:56 文件变更 3 提交数 5 评论 1 代码增减 +55 / -0

执行摘要

新增 XPU 镜像的 nightly 和 release 发布流程

XPU(Intel GPU)镜像之前仅发布到 ECR,社区用户难以使用。本 PR 扩展了现有的 nightly 和 release 发布流程,使 XPU 镜像能够自动发布到 DockerHub,便于用户通过 docker pull vllm/vllm-openai-xpu 获取。

建议阅读此 PR 以了解 XPU 镜像发布流程的设计。如果团队计划增加其他硬件后端,可以参考此模式。值得关注的点是 push-nightly-builds-xpu.sh 中使用了 docker manifest 操作,以及如何在 pipeline 中组织依赖。

讨论亮点

本 PR 的 review 由两位项目维护者(jikunshang 和 khluu)批准,没有提出实质性修改建议。Claude 自动化检查因来自 fork 而未执行。整体流程比较简单,无重大争议。

实现拆解

  1. 发布流水线配置.buildkite/release-pipeline.yaml):在 ROCm nightly 步骤之前新增了 Publish nightly XPU image to DockerHub 步骤,依赖 create-manifest-xpu;并在 release 发布的 block 中增加 create-manifest-xpu 依赖。
  2. 新增 nightly 发布脚本.buildkite/scripts/xpu/push-nightly-builds-xpu.sh):从 ECR 拉取 COMMIT-x86_64-xpu 镜像,重新标记并推送 nightly-x86_64 标签,然后清理旧 manifest 并创建/推送 nightlynightly-COMMIT manifest。
  3. 扩展 release 发布脚本.buildkite/scripts/publish-release-images.sh):在 ROCm 和 CPU 处理之后添加了 XPU 镜像的拉取、标记为 latest-x86_64v${RELEASE_VERSION}-x86_64、推送,以及创建/推送 latestv${RELEASE_VERSION} manifest。
  4. 无测试、配置或架构配套改动:本 PR 是纯 CI 流程变更。
文件 模块 状态 重要度
.buildkite/release-pipeline.yaml 发布流水线 modified 4.28
.buildkite/scripts/xpu/push-nightly-builds-xpu.sh XPU 发布脚本 added 4.04
.buildkite/scripts/publish-release-images.sh 镜像发布脚本 modified 3.14

关键源码片段

.buildkite/scripts/xpu/push-nightly-builds-xpu.sh core-logic

新增脚本,负责从 ECR 拉取 XPU 镜像并推送 nightly 标签到 DockerHub。

#!/bin/bashset -ex
​
ORIG_TAG_NAME="$BUILDKITE_COMMIT"
REPO="vllm/vllm-openai-xpu"echo "Pushing original XPU tag ${ORIG_TAG_NAME}-xpu to nightly tags in ${REPO}"# 登录 ECR 并拉取构建产物
aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/q9t5s3a7
docker pull public.ecr.aws/q9t5s3a7/vllm-release-repo:"$ORIG_TAG_NAME"-x86_64-xpu
​
# 标记并推送架构特定 nightly 标签
docker tag public.ecr.aws/q9t5s3a7/vllm-release-repo:"$ORIG_TAG_NAME"-x86_64-xpu ${REPO}:nightly-x86_64
docker push ${REPO}:nightly-x86_64
​
# 清理可能存在的旧 manifest(忽略错误)
docker manifest rm ${REPO}:nightly || true
docker manifest rm ${REPO}:nightly-"$BUILDKITE_COMMIT" || true# 创建并推送 multi-arch manifest(当前只有 x86_64)
docker manifest create ${REPO}:nightly ${REPO}:nightly-x86_64 --amend
docker manifest create ${REPO}:nightly-"$BUILDKITE_COMMIT" ${REPO}:nightly-x86_64 --amend
docker manifest push ${REPO}:nightly
docker manifest push ${REPO}:nightly-"$BUILDKITE_COMMIT"
.buildkite/scripts/publish-release-images.sh core-logic

在现有 release 发布脚本中添加了对 XPU 镜像的处理,包括拉取、tag、manifest 创建和推送。

# ---- XPU ----# 从 ECR 拉取预构建的 XPU 镜像
docker pull public.ecr.aws/q9t5s3a7/vllm-release-repo:${COMMIT}-x86_64-xpu
​
# 标记为 latest 和 release 版本的 x86_64 架构标签
docker tag public.ecr.aws/q9t5s3a7/vllm-release-repo:${COMMIT}-x86_64-xpu vllm/vllm-openai-xpu:latest-x86_64
docker tag public.ecr.aws/q9t5s3a7/vllm-release-repo:${COMMIT}-x86_64-xpu vllm/vllm-openai-xpu:v${RELEASE_VERSION}-x86_64
docker push vllm/vllm-openai-xpu:latest-x86_64
docker push vllm/vllm-openai-xpu:v${RELEASE_VERSION}-x86_64
​
# 创建并推送 multi-arch manifest(当前只有 x86_64,未来可扩展 ARM)
docker manifest rm vllm/vllm-openai-xpu:latest || true
docker manifest rm vllm/vllm-openai-xpu:v${RELEASE_VERSION} || true
docker manifest create vllm/vllm-openai-xpu:latest vllm/vllm-openai-xpu:latest-x86_64 --amend
docker manifest create vllm/vllm-openai-xpu:v${RELEASE_VERSION} vllm/vllm-openai-xpu:v${RELEASE_VERSION}-x86_64 --amend
docker manifest push vllm/vllm-openai-xpu:latest
docker manifest push vllm/vllm-openai-xpu:v${RELEASE_VERSION}

评论区精华

无实质性讨论 other

PR 的 review 中没有提出具体问题,jikunshang 和 khluu 已直接批准。

结论:无需修改。 · 已解决

风险与影响

风险较低。主要风险包括:

1) XPU nightly 步骤依赖 create-manifest-xpu 步骤,如果该步骤失败则 nightly 发布不会触发;
2) 脚本中硬编码了镜像仓库名 vllm/vllm-openai-xpu,后续更名需手动同步;
3) 新增的 manifest 清理逻辑(docker manifest rm ... || true)可能导致极短时间内标签不可用。但由于发布流程本身已具备类似模式(如 ROCm),风险可控。

对用户:XPU 用户现在可以从 DockerHub 获取 nightly 和稳定版镜像。对团队:新增一个脚本需要维护,但逻辑与现有发布脚本类似。对系统:在 release pipeline 中增加了一些步骤,只影响 XPU 相关路径,不增加其他构建负担。

新增 CI 步骤 依赖上游 manifest 步骤 脚本硬编码仓库名

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论