# PR #7268 完整报告

- 仓库：`verl-project/verl`
- 标题：[ci] chore: Update python&cann version, delete non-existent file
- 合并时间：2026-08-05 15:05
- 原文链接：http://prhub.com.cn/verl-project/verl/pull/7268

---

# 执行摘要

- 一句话：Ascend 镜像升级至 CANN 9.0.1/Python 3.12 并清理无效构建步骤
- 推荐动作：不值得作为重点 PR 精读，可快速浏览。值得留意的是「删除不存在的构建文件」与「跟随 vllm 升级同步调整镜像」这类配套变更的协作模式：基础设施维护往往与上游依赖升级联动（如 PR#7238），在排查 Ascend 镜像构建失败时，应先核对 vllm 仓库文件结构是否变化。

# 功能与动机

PR body 明确说明「update to python 3.12 & cann 9.0.1，delete non-existent file」。该变更是 Ascend 镜像环境版本的常规跟进：CANN 9.0.1 与 Python 3.12 是更新版本的运行环境，而 vllm 新版仓库中 `requirements/build.txt` 已不存在，继续执行该步骤会导致镜像构建失败或无意义的构建过程。

# 实现拆解

实现拆解如下（均为基础设施配置变更）：

1. **基础镜像升级**：修改 `docker/ascend/Dockerfile.ascend_9.0.0_a2` 与 `Dockerfile.ascend_9.0.0_a3` 的 `FROM` 行，将镜像从 `cann:9.0.0-910b-ubuntu22.04-py3.11` / `cann:9.0.0-a3-ubuntu22.04-py3.11` 升级为 `cann:9.0.1-910b-ubuntu22.04-py3.12` / `cann:9.0.1-a3-ubuntu22.04-py3.12`，分别对应 910B 与 910_9392 两个 SOC 平台。
2. **vllm 构建步骤简化**：在两个 Dockerfile 中删除 `cd vllm && pip install -r requirements/build.txt &&` 这一步骤，保留后续的 `VLLM_TARGET_DEVICE=empty pip install -v -e.` editable 安装。原因是新版 vllm 已移除 `requirements/build.txt` 文件，删除后避免构建阶段报错，也使镜像层构建更简洁。
3. **未含配套变更**：本 PR 没有新增测试、文档或 CI 配置改动，仅依赖现有的 Ascend Docker 镜像构建工作流（如 `.github/workflows/docker-build-ascend-a2.yml`、`docker-build-ascend-a3.yml`）做实际构建验证。

关键文件：
- `docker/ascend/Dockerfile.ascend_9.0.0_a2`（模块 镜像构建；类别 infra；类型 infrastructure）: Ascend 910B 平台的构建镜像定义：基础镜像升级到 CANN 9.0.1 + Python 3.12，并移除 vllm 安装流程中对已不存在文件 requirements/build.txt 的引用。
- `docker/ascend/Dockerfile.ascend_9.0.0_a3`（模块 镜像构建；类别 infra；类型 infrastructure）: Ascend A3 平台（910_9392）的配套镜像定义，与 a2 文件做相同的 CANN/Python 版本升级和 build.txt 清理，保证两平台镜像环境一致。

关键符号：未识别

## 关键源码片段

### `docker/ascend/Dockerfile.ascend_9.0.0_a2`

Ascend 910B 平台的构建镜像定义：基础镜像升级到 CANN 9.0.1 + Python 3.12，并移除 vllm 安装流程中对已不存在文件 requirements/build.txt 的引用。

```dockerfile
# 基础镜像升级：CANN 9.0.0 + Python 3.11 -> CANN 9.0.1 + Python 3.12
FROM swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:9.0.1-910b-ubuntu22.04-py3.12
ARG SOC_VERSION="ascend910b1"

# ... 环境准备阶段省略 ...

RUN export PIP_EXTRA_INDEX_URL=https://triton-ascend.osinfra.cn/pypi/simple/ && \
    source /usr/local/Ascend/ascend-toolkit/set_env.sh && \
    source /usr/local/Ascend/nnal/atb/set_env.sh && \
    # vllm 新版已移除 requirements/build.txt，故不再执行该 pip install 步骤，
    # 直接以 VLLM_TARGET_DEVICE=empty 做 editable 安装，避免无效构建
    cd vllm && \
    VLLM_TARGET_DEVICE=empty pip install -v -e. && cd .. && \
    if [ "$ARCH" = "x86_64" ]; then \
        pip install torch==2.10.0+cpu --index-url https://download.pytorch.org/whl/cpu/; \
    fi

```

### `docker/ascend/Dockerfile.ascend_9.0.0_a3`

Ascend A3 平台（910_9392）的配套镜像定义，与 a2 文件做相同的 CANN/Python 版本升级和 build.txt 清理，保证两平台镜像环境一致。

```dockerfile
# 基础镜像升级：CANN 9.0.0 + Python 3.11 -> CANN 9.0.1 + Python 3.12
FROM swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:9.0.1-a3-ubuntu22.04-py3.12
ARG SOC_VERSION="ascend910_9392"

# ... 环境准备阶段省略 ...

RUN export PIP_EXTRA_INDEX_URL=https://triton-ascend.osinfra.cn/pypi/simple/ && \
    source /usr/local/Ascend/ascend-toolkit/set_env.sh && \
    source /usr/local/Ascend/nnal/atb/set_env.sh && \
    # vllm 新版已移除 requirements/build.txt，直接进行 editable 安装
    cd vllm && \
    VLLM_TARGET_DEVICE=empty pip install -v -e. && cd .. && \
    if [ "$ARCH" = "x86_64" ]; then \
        pip install torch==2.10.0+cpu --index-url https://download.pytorch.org/whl/cpu/; \
    fi

```

# 评论区精华

该 PR 无任何 review 评论或讨论线程，审核人 wucong25 直接给予 APPROVED。核心结论即 PR body 所述：升级 Python/CANN 版本并删除不存在的文件，改动意图简单明确，未产生设计或实现层面的分歧。

- 暂无高价值评论线程

# 风险与影响

- 风险：主要风险集中在环境兼容性上：
 1. **CANN/Python 版本跃升**：从 Python 3.11 升至 3.12、CANN 9.0.0 升至 9.0.1，可能影响 Ascend 算子库行为、`triton-ascend` 依赖兼容性以及镜像内其他 Python 包（如 `torch==2.10.0+cpu`）的可用性，需依赖镜像构建 CI 做真实验证。
 2. **删除 build.txt 的潜在依赖缺失**：若 vllm 在 editable 安装过程中仍隐式依赖 `requirements/build.txt` 中声明的构建依赖（如 ninja、cython 等），删除后可能造成构建期失败；不过该步骤被移除正是因为文件已不存在，风险较低。
 3. **无自动化测试覆盖**：Dockerfile 变更没有可执行的单测或集成测试，只能通过镜像构建流水线和下游 NPU CI 任务间接验证。
 - 影响：影响范围为使用 Ascend a2/a3 镜像的用户和依赖这些镜像的 CI 流水线（如 `nightly_ascend.yml`、Ascend Docker 构建工作流）。升级后基础运行环境统一到 CANN 9.0.1 + Python 3.12，与 vLLM 0.23.0 升级链路（PR#7238）保持一致；已有镜像需重新构建，下游任务也需同步验证算子与三方库兼容性。整体影响面较小，属于可预期的环境维护变更。
 - 风险标记：依赖版本升级 , 构建链路变更 , 未配套测试 , NPU 运行时兼容性

# 关联脉络

- PR #7238 [doc] feat: Update vllm/vllm-ascend and torch version: 同一 Ascend 基础设施升级链路：7238 将 vLLM/vLLM-Ascend 升到 0.23.0 并同步相关脚本与文档，本 PR 在此之上升级 CANN/Python 基础镜像并移除 vllm 新版已不存在的 build.txt 安装步骤，二者共同构成 Ascend 镜像环境的版本升级闭环。