Pull Request已成功合入, 合并人@ascend-robot
(感谢 xubin 的贡献)变更摘要
此 PR 为 MindSpeed-MM 仓库新增了 VS Code Dev Container 配置(.devcontainer/devcontainer.json 及配套的 prepare-context.sh),使开发者可通过 "Reopen in Container" 一键启动标准化的昇腾 NPU 容器开发环境。同时,对 docker/Dockerfile 和 docker/build.sh 进行了大幅简化:移除了 OS、NPU_TYPE、OS_FAMILY、BASE_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简化:移除OS、NPU_TYPE、OS_FAMILY、BASE_IMAGE_VERSION等构建参数(ARG);基础镜像默认值从拼接多个变量改为硬编码完整镜像名swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:9.0.0-a3-openeuler24.03-py3.11;操作系统家族的检测从ARG OS_FAMILY改为运行时解析/etc/os-release的ID字段自动推导;移除了硬编码的 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_TYPE、DETECTED_OS、DETECTED_CANN_VERSION和DETECTED_PYTHON_VERSION,若任一检测失败则报错退出;移除传递给 Docker 的OS、NPU_TYPE和BASE_IMAGE_VERSION构建参数,仅保留BASE_IMAGE。 -
docker/common/download_miniconda.sh帮助信息更新:示例命令从旧式的bash build.sh -t A3 -m ...更新为新的bash build.sh --base-image <完整镜像名> -m ...,与build.sh重构后的调用方式保持一致。


Pull Request 已合并或已关闭。
If you want to solve this problem, you can click here to do it in the FAQs.


Pull Request 已合并或已关闭。
If you want to solve this problem, you can click here to do it in the FAQs.


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() 均正常。