Prhub

#56459 [ROCm][Docker] Pin AINIC apt repo to snapshot 1.117.5-a-77

原始 PR 作者 djramic 合并时间 2026-09-11 22:14 文件变更 3 提交数 1 评论 3 代码增减 +3 / -3

执行摘要

固定 AINIC apt 仓库到快照,修复 ROCm 镜像构建失败

PR body 明确说明:AMD Model Executor job 在环境 setup 时失败,报错 E: Failed to fetch .../amdainic/pensando/ubuntu/1.117.5/dists/jammy/main/binary-amd64/Packages.gz File has unexpected size (3363 != 3397). Mirror sync in progress?。原因是 AINIC_VERSION=1.117.5 指向可变路径,repo.radeon.com 的索引文件按文件缓存,客户端可能把某个 publication 的 InRelease 与另一个的 Packages.gz 配对,触发 apt 完整性检查失败。固定到 1.117.5-a-77 这个 per-build 快照路径后,该路径不会在后续构建中被复用,且经测试确认该快照恰好提供 libionic1=54.0-187-1 和 ionic-dkms=26.03.3.001,与 #54112 选定的版本完全一致,镜像内容不变。

该 PR 改动很小但值得快速阅读:它清晰展示了如何修复 apt 可变仓库路径导致的完整性检查失败,并通过选中内容完全一致的快照来保持镜像二进制不变。对于维护 ROCm 镜像或处理第三方 apt 源不稳定问题的工程师有参考价值,无需深入代码学习。

讨论亮点

本 PR 没有实质性的 review 讨论:claude[bot] 因 PR 来自 fork 而自动跳过审查,AndreasKaratzas 直接 approve。Issue 侧仅有 mergify 的文档预览、/ci run 指令和 Buildkite CI 触发记录,均为流程性消息,无技术争议。

实现拆解

  1. 变更入口:在 docker/Dockerfile.rocm 和 docker/Dockerfile.rocm_gfx1250 中,将 ARG AINIC_VERSION=1.117.5 改为 ARG AINIC_VERSION=1.117.5-a-77。两个 Dockerfile 同步修改,确保通用 ROCm 镜像与 gfx1250 专用镜像使用同一固定快照,避免变体之间行为不一致。
  2. 配套文档:在 docs/features/moriio_connector_usage.md 的"官方镜像预装"列表中,将 AINIC 版本说明从 1.117.5 更新为 1.117.5-a-77,同时保留 libionic1=54.0-187-1 与 ionic-dkms=26.03.3.001 的说明,防止文档与镜像声明不一致。
  3. 验证方式:PR body 给出隔离 apt root 下固定到 CI pod 所用 CDN 边缘节点的测试对比,1.117.5 路径 InRelease 期望 3397 但实际返回 3363,退出码 100;1.117.5-a-77 路径期望与实际均为 3363,退出码 0。本 PR 未新增自动化测试文件,属于纯构建配置与文档变更。
文件 模块 状态 重要度
docker/Dockerfile.rocm 镜像构建 modified 2.78
docker/Dockerfile.rocm_gfx1250 镜像构建 modified 2.38
docs/features/moriio_connector_usage.md 文档 modified 1.32

关键源码片段

docker/Dockerfile.rocm infrastructure

通用 ROCm 镜像的主构建文件,是 AINIC 版本变量的定义处,也是本次修复的核心入口。将 ARG AINIC_VERSION 从可变路径 1.117.5 固定到 per-build 快照 1.117.5-a-77,直接消除 apt 索引文件配对不一致的问题。

# Users can specify a custom version compatible with their host drivers.
# The default version has been tested with ionic-dkms=26.03.3.001
# (libionic1=54.0-187-1), required for MoRI-EP/NIXL on Pollara/AINIC.
# 固定到 per-build 快照 1.117.5-a-77:1.117.5 是可变路径,repo.radeon.com
# 的索引文件按文件缓存,可能把不同 publication 的 InRelease 与 Packages.gz
# 配在一起,导致 apt 完整性检查失败。快照路径不会被后续构建复用。
ARG AINIC_VERSION=1.117.5-a-77

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

  1. 第三方快照可用性:repo.radeon.com 的 per-build 快照 1.117.5-a-77 理论上仍可能被上游清理或下线,届时镜像构建会再次失败;但 per-build 路径通常不会复用,风险较低。
  2. 版本锁定一致性:固定后的快照提供的 libionic1 与 ionic-dkms 版本与之前完全一致,镜像内容无实质变化,功能性回归风险低。
  3. 影响面窄:变更仅作用于 ROCm Docker 镜像构建配置与对应文档,不涉及运行时、核心代码和推理逻辑。
  4. 无自动化回归测试:该变更没有配套测试文件,后续若需升级 AINIC 版本,需要人工同步修改两个 Dockerfile 和一份文档,存在遗漏点。

对用户的影响:使用 vllm/vllm-openai-rocm 官方镜像并启用 AINIC(AMD Pensando Pollara)NIC 的用户,镜像内实际安装的驱动库版本不变,但 apt 源解析更稳定,减少构建时的偶发失败。对系统的影响:修复 AMD CI 任务在环境 setup 阶段的不稳定失败。对团队的影响:为 ROCm 镜像的第三方 apt 依赖提供了"从可变路径固定到 per-build 快照"的实践范式,同时要求后续维护者注意 Dockerfile 主变体、gfx1250 变体和文档三处版本号的同步。

构建配置变更 依赖第三方 apt 快照 无自动化测试覆盖

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论