已合并
chore: add VS Code devcontainer configuration. #2911
chore: add VS Code devcontainer configuration. #2911
已合并
xubin创建于 7月31日
xubin成员
7月31日

What this PR does / why we need it?

当前仓库缺乏 Dev Container 配置(.devcontainer/devcontainer.json 及配套 Dockerfile),导致开发者在不同环境中需要手动配置依赖,降低了协作效率。
为 MindSpeed-MM 新增 VS Code Dev Container 配置(.devcontainer/),一键启动标准化的容器开发环境。
同时对dockerfile做一定适配简化。

Does this PR introduce any user-facing change?

可选使用,不影响已有代码。VS Code 打开仓库 → F1 → Reopen in Container 即可。

How was this patch tested?

在 arm64 NPU 服务器上 Reopen in Container 验证通过:镜像构建、依赖安装、pre-commit hooks、torch_npu.npu.is_available() 均正常。

likedislike
Pull Request已成功合入, 合并人@ascend-robot
(感谢 xubin 的贡献)
Xxubin成员
7月31日 创建了 pull request,commit c01d396a
atomgit-bot
atomgit-bot
7月31日 评论:

变更摘要

此 PR 为 MindSpeed-MM 仓库新增了 VS Code Dev Container 配置(.devcontainer/devcontainer.json 及配套的 prepare-context.sh),使开发者可通过 "Reopen in Container" 一键启动标准化的昇腾 NPU 容器开发环境。同时,对 docker/Dockerfiledocker/build.sh 进行了大幅简化:移除了 OSNPU_TYPEOS_FAMILYBASE_IMAGE_VERSION 等分散的构建参数,改为直接从 --base-image 完整镜像标签中自动检测 CANN 版本、NPU 类型、操作系统和 Python 版本,降低了构建配置的复杂度。

主要改动

  • 新增 .devcontainer/devcontainer.json:定义了名为 "MindSpeed-MM Dev" 的容器开发环境,支持预构建镜像与 build 模式两种启动方式;配置了昇腾 NPU 设备映射(--device=/dev/davinci*)、宿主机驱动挂载(/usr/local/Ascend/driver 等)、postCreateCommand 自动安装项目依赖及 pre-commit hooks,并预置了 Python、Ruff、GitLens 等 VS Code 扩展与编辑器设置。

  • 新增 .devcontainer/prepare-context.sh:作为 initializeCommand 调用的辅助脚本,负责在宿主机上准备 Docker 构建上下文——下载并暂存 Miniconda 安装器、通用函数脚本、软件源配置脚本、decord 编译依赖及模型安装脚本,并创建 torch_wheels 占位目录以支持在线安装 PyTorch。

  • docker/Dockerfile 简化:移除 OSNPU_TYPEOS_FAMILYBASE_IMAGE_VERSION 等构建参数(ARG);基础镜像默认值从拼接多个变量改为硬编码完整镜像名 swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:9.0.0-a3-openeuler24.03-py3.11;操作系统家族的检测从 ARG OS_FAMILY 改为运行时解析 /etc/os-releaseID 字段自动推导;移除了硬编码的 DNS 配置步骤;TORCH_NPU_VERSION 默认值从 2.7.1 更新为 2.7.1.post8

  • docker/build.sh 重构--base-image 从可选改为必需参数,替代原有的 -t/--npu-type-o/--os--base-image-version 等分散参数;新增 parse_base_image_tag() 函数从基础镜像标签中自动提取 DETECTED_NPU_TYPEDETECTED_OSDETECTED_CANN_VERSIONDETECTED_PYTHON_VERSION,若任一检测失败则报错退出;移除传递给 Docker 的 OSNPU_TYPEBASE_IMAGE_VERSION 构建参数,仅保留 BASE_IMAGE

  • docker/common/download_miniconda.sh 帮助信息更新:示例命令从旧式的 bash build.sh -t A3 -m ... 更新为新的 bash build.sh --base-image <完整镜像名> -m ...,与 build.sh 重构后的调用方式保持一致。

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

🤖 AI Code Review

⚠️ 审查未能完成

本次代码审查未能完成,可能是临时性故障。

你可以在评论区输入 /ai review 重新发起审查。若多次失败,请联系管理员并附上下方追踪 ID。

追踪 ID: task-142630-run-136875

likedislike
ascend-robotascend-robot成员
7月31日 添加了label:stat/needs-squash
ascend-robotascend-robot成员
7月31日 添加了label:ascend-cla/yes
此处折叠了64条消息 查看更多
htwang成员
29 天前 评论:

/approve

likedislike
ascend-robotascend-robot成员
29 天前 添加了label:approved
ascend-robotascend-robot成员
29 天前 合入了pull request
ascend-robot
ascend-robot成员
29 天前 评论:

Pull Request 已合并或已关闭。

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

likedislike
ascend-robot
ascend-robot成员
29 天前 评论:

Pull Request 已合并或已关闭。

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

likedislike