已合并
[feat]devcontainer #40301
SCh_zx创建于 7月7日
[feat]devcontainer #40301
已合并
SCh_zx创建于 7月7日
SCh_zx成员
7月7日

【合入来源】

如有社区issue,请关联issue链接
请勿携带内部流程信息(需求链接、问题单、内部issue等)

  • 需求
  • 问题单
  • issue/工单
  • 重构优化
  • 资料更新

【修改方案】

请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列
如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容)

新增devcontainer功能,以支持在ide环境下直接构建开发镜像。
合并x86与arm不同架构的dockerfile,简化构建流程。

【资料变更】

请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及”

【接口变更】

请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及”

【功能验证】

说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤
新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图

【CheckList】

PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x]

  • 代码注释完备,正确记录错误日志
  • 代码实现进行了返回值、空指针等校验
  • PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等
  • PR持续集成流水线(CI)执行通过,代码检查无异常
likedislike
Pull Request已成功合入, 合并人@ascend-robot
(感谢 SCh_zx 的贡献)
SSCh_zx成员
7月7日 创建了 pull request,commit 7a1b9d76
atomgit-bot
atomgit-bot
7月7日 评论:

变更摘要

该 PR 主要为 TorchNPU 项目添加 VS Code DevContainer 开发环境配置,并对 Docker 构建基础设施进行统一化改造:删除独立的 ARM 架构 Dockerfile,将原有的 docker/builder/ 目录下的 Dockerfile 和构建脚本重命名为通用的 docker/devel/ 路径,同时通过多架构基础镜像和条件编译使单一 Dockerfile 同时支持 x86_64 和 ARM 平台。

主要改动

  • 新增 DevContainer 配置: 添加 .devcontainer/devcontainer.json,基于 docker/devel/Dockerfile 构建名为 "TorchNPU Dev (CANN)" 的开发容器,预配置 NPU 设备挂载、驱动路径和 LD_LIBRARY_PATH 环境变量,参数化支持 PY_VERSIONTORCH_VERSIONCANN_VERSION 等构建参数。

  • 删除 ARM 专用 Dockerfile: 移除 docker/builder/ARM/Dockerfile(120 行),该文件此前为 ARM 架构独立维护的构建镜像定义,现由统一的多架构 Dockerfile 替代。

  • Dockerfile 多架构适配: docker/devel/Dockerfile 将基础镜像从 manylinux_2_28_x86_64 改为 manylinux_2_28(多架构标签),新增 TARGETARCH 参数,cmake 安装逻辑改为仅 amd64 架构执行(ARM 平台跳过),使同一 Dockerfile 覆盖两种 CPU 架构。

  • 构建脚本简化: docker/devel/builder.sh 移除按 uname -m 结果分发到 X86ARM 子目录的 case 分支逻辑,DOCKERFILE_DIR 直接使用脚本自身所在目录 ${SCRIPT_DIR},与 Dockerfile 合并到 docker/devel/ 目录的结构保持一致。

likedislike
atomgit-bot
atomgit-bot
7月7日 评论:

代码审查

审查总结

我逐一审查了所有 4 个变更文件:

文件 结果
.devcontainer/devcontainer.json 发现 2 个问题(P2 + P3)
docker/devel/Dockerfile 发现 1 个问题(P3)
docker/devel/README.md 发现 1 个问题(P2)
docker/devel/builder.sh 未发现问题

按优先级统计

  • P0:0 个
  • P1:0 个
  • P2:2 个(LD_LIBRARY_PATH 覆盖导致库路径丢失、Windows 文档路径指向不存在的目录)
  • P3:2 个(root + privileged 安全风险、非 BuildKit 环境 cmake 未安装)

整体风险评估:中等风险。两个 P2 问题都是真实可触发的 bug——LD_LIBRARY_PATH 覆盖会影响 DevContainer 中的编译和 CANN 运行时行为,Windows 文档路径错误会让 Windows 用户完全无法按照文档操作。两个 P3 问题属于边界场景和安全性改进建议。核心变更逻辑(多架构镜像统一、目录结构重组)本身是正确的。

类型 数量
🔴 阻塞 0
🟡 建议 2

💬 仅评论

likedislike
ascend-robotascend-robot成员
7月7日 添加了label:ascend-cla/yes
此处折叠了155条消息 查看更多
renyujin成员
7月8日 评论:

/lgtm
/approve

likedislike
ascend-robotascend-robot成员
7月8日 添加了label:approvedlgtm
ascend-robotascend-robot成员
7月8日 合入了pull request
ascend-robot
ascend-robot成员
7月8日 评论:

Pull Request 已合并或已关闭。

If you want to solve this problem, you can click here to do it in the FAQs.

likedislike
ascend-robot
ascend-robot成员
7月8日 评论:
流水线 pytorch_gitcode_PR_multiVersion#12197 [ commitID:ac4333a5 ] 已完成
likedislike