GitHub Actions runner-images Windows 11 Arm64 镜像:软件清单、构建配置与使用指南
GitHub Actions runner-images Windows 11 Arm64 镜像软件清单、构建配置与使用指南【免费下载链接】runner-imagesGitHub Actions runner images项目地址: https://gitcode.com/GitHub_Trending/ru/runner-imagesGitHub Actions 的windows-11-arm托管运行器基于 runner-images 仓库中的 Windows 11 EnterpriseArm64预置镜像构建本指南以镜像官方 Readmeimages/windows/Windows11-Arm64-Readme.md为骨架结合该镜像的 toolset 配置、软件报告生成脚本 与 Packer 构建模板完整梳理镜像的软件组成、版本锁定机制、环境变量与构建原理帮助你在windows-11-arm运行器上准确选择工具链、编写兼容的工作流并理解镜像是如何被构建与验证的。镜像基础信息根据 Readme 顶部信息该镜像当前状态如下操作系统Windows 11 EnterpriseOS 版本10.0.26200 Build 9168镜像版本20260906.161.1在 README.md 的可用镜像清单中Windows 11 Arm64 对应运行器标签windows-11-arm架构为arm64其详细软件清单链接即指向本文档所在的 Readme 文件。这意味着在 GitHub Actions 工作流中写入runs-on: windows-11-arm即可使用该镜像。从仓库的 Packer 配置images/windows/templates/locals.windows.pkr.hcl可以看到win11-arm64的源镜像来自 Azure Marketplace 的microsoftwindowsdesktop:windows11preview-arm64:win11-25h2-entWindows 11 25H2 Enterprise 预览版镜像系统盘大小固定为 256GB与之同源的还有win11-vs2026-arm64Windows 11 Arm64 with Visual Studio 2026。也就是说仓库为 Arm64 架构维护了独立于 x64win22 / win25的源镜像映射这与 x64 镜像使用WindowsServer系列作为基座完全不同。Windows 功能与架构差异Readme 的 Windows features 一节为空但这恰恰与源码中的注释相呼应在 Generate-SoftwareReport.ps1 中报告生成逻辑对 Windows 11 Arm64 做了特殊处理WSLv1 在 Arm64 上不可用WSL1 是旧式组件不支持 Arm64 架构WSL2 需要嵌套虚拟化而 Azure 的 Arm64 虚拟机规格不提供该能力因此在 Arm64 镜像上不启用 WSL详见源码注释引用的 issue actions/runner-images#14076。这解释了为什么在windows-11-arm上无法使用 WSL——这是架构层面的硬性限制而非配置遗漏。如果你需要 WSL应选择 x64 的 Windows 镜像。语言与运行时Language and Runtime镜像预装了 10 种语言运行时且全部为 Arm64AArch64原生构建运行时版本Bash5.3.15(2)-releaseGo1.24.13Julia1.12.0Kotlin2.4.10LLVM22.1.8Node24.20.0Perl5.32.1PHP8.4.25Python3.13.15Ruby3.4.10注意与 x64 镜像例如 Windows 2022/2025相比Arm64 镜像缺失 Miniconda、Docker、Cabal、ghc、Service Fabric、WiX、MongoDB Shellmongosh等组件。从报告脚本中可以看出这些工具都被Test-IsX64条件包裹属于仅 x64分支反过来R 语言在 Arm64 上以 x86_64 模拟emulated方式运行因为 Chocolatey 的R.Project包只发布 x86_64 安装器见 Generate-SoftwareReport.ps1 的注释。LLVM 22.1.8 在 toolset-win-11-arm64.json 中被显式固定pinnedDetails原因是该版本是针对 Windows 11 ARM64 镜像专项验证过的版本并设置了复审日期2026-12-01——这是仓库版本固定version pinning机制的典型体现。包管理Package Management镜像内置 10 类包管理工具覆盖主流语言生态Chocolatey 2.7.4Windows 包管理器镜像内多数桌面级工具的安装入口Composer 2.10.3PHP 依赖管理Helm 4.1.4Kubernetes 包管理NPM 11.19.0Node.js 包管理NuGet 7.9.0.83.NET 包管理pip 26.2.1Python 3.13Pipx 1.17.2Python 应用隔离安装RubyGems 3.6.9Ruby 包管理Vcpkgbuild from commit 04a9d8e521C/C 包管理Yarn 1.22.22Node.js 包管理经典 1.x 版本对应环境变量| 名称 | 值 | | ---- | -- | | VCPKG_INSTALLATION_ROOT | C:\vcpkg |从 toolset-win-11-arm64.json 的choco.common_packages可以看到这些工具的安装来源7zip.install、aria2、azcopy10、Bicep、innosetup、jq、NuGet.CommandLine、packer、strawberryperl固定 5.32.1.1、pulumi、swig、vswhere、julia带安装参数--ia /DIRC:\Julia与imagemagick。其中 Perl 通过 Chocolatey 安装并锁定了精确版本5.32.1.1。项目管理工具Project Management镜像内置 4 种主流 Java/Scala 生态构建工具Ant 1.10.17Gradle 9.7Maven 3.9.16sbt 1.12.12Maven 版本在 toolset 中配置为3.9系列maven: { version: 3.9 }sbt 则通过 Stack 生态见 Tools 节间接提供。常用工具Tools镜像内置 30 余种开发与运维工具覆盖压缩、构建、容器、云与静态分析等场景7zip 26.03、aria2 1.37.0、azcopy 10.32.7、Bazel 9.2.0、Bazelisk 1.28.1、Bicep 0.46.1、CMake 4.4.3、CodeQL Action Bundle 2.26.4、Git 2.55.0.windows.5、Git LFS 3.7.1、ImageMagick 7.1.2-25、InnoSetup 6.7.1、jq 1.8.1、Kind 0.33.0、Kubectl 1.37.0、Mercurial 6.3.1、gcc 14.2.0、gdb 16.2、GNU Binutils 2.44、Newman 6.2.2、NSIS 3.10、OpenSSL 3.6.4、Packer 1.16.0、Pulumi 3.261.0、R 4.6.1 (x86_64, emulated)、Stack 3.11.1、Swig 4.4.1、VSWhere 3.1.7、WinAppDriver 1.2.2009.02003、yamllint 1.38.0、zstd 1.5.7、Ninja 1.13.2。值得留意的架构差异点同样来自报告脚本的条件分支Docker 系列工具Docker / Docker Compose / docker-wincred在 Arm64 上不提供Mercurial、NSIS、Cabal、ghc、WiX 等在 Arm64 上被跳过MSYS2 已预装但未加入 PATH见下文 MSYS2 小节。CLI 工具CLI ToolsAlibaba Cloud CLI 3.4.11AWS CLI 2.36.40AWS SAM CLI 1.166.1AWS Session Manager CLI 1.2.835.0Azure CLI 2.90.0Azure DevOps CLI extension 1.0.8GitHub CLI 2.100.0在 toolset 的azureModules中配置了 Az PowerShell 模块版本15.6.1az: { versions: [15.6.1] }报告脚本通过Get-AzureDevopsExtVersion获取 Azure DevOps CLI 扩展版本这两者共同构成 Azure 生态工具链。Rust 工具链Rust ToolsCargo 1.98.1Rust 1.98.1Rustdoc 1.98.1Rustup 1.29.1附加 Rust 包bindgen 0.73.1cargo-audit 0.22.2cargo-outdated 0.19.0cbindgen 0.29.4Clippy 0.1.98Rustfmt 1.9.0报告脚本中 Rust 相关版本读取前会先执行Initialize-RustEnvironment见 Generate-SoftwareReport.ps1确保 cargo/rustup 环境变量已就绪这一点说明镜像上 Rust 工具链通过 rustup 管理版本读取依赖环境初始化。浏览器与 WebDriverBrowsers and DriversGoogle Chrome 152.0.7977.83Chrome Driver 152.0.7977.82Microsoft Edge 152.0.4191.66Microsoft Edge Driver 152.0.4191.66Mozilla Firefox 155.0.1Gecko Driver 0.37.1IE Driver 4.14.0.0Selenium server 4.48.0环境变量供 Selenium / WebDriver 自动化测试直接引用| 名称 | 值 | | ---- | -- | | CHROMEWEBDRIVER | C:\SeleniumWebDrivers\ChromeDriver | | EDGEWEBDRIVER | C:\SeleniumWebDrivers\EdgeDriver | | GECKOWEBDRIVER | C:\SeleniumWebDrivers\GeckoDriver | | SELENIUM_JAR_PATH | C:\selenium\selenium-server.jar |toolset 中selenium: { version: 4 }说明 Selenium 以 4.x 系列安装浏览器 WebDriver 环境变量由报告脚本的Build-BrowserWebdriversEnvironmentTable生成路径固定位于C:\SeleniumWebDrivers。Java 运行时版本环境变量21.0.12101.0 (default)JAVA_HOME_21_AARCH6423.0.27JAVA_HOME_23_AARCH64toolset 中java: { default: 21, versions: [21, 23] }与之一一对应默认 JDK 为 21两个版本都通过JAVA_HOME_*_AARCH64系列环境变量暴露SoftwareReport.Java.psm1 中通过Test-IsArm64判断读取JAVA_HOME_*_AARCH64x64 则读取_X64系列。版本字符串中路径的-会被还原为见源码对 issue actions/runner-images#3014 的说明。Shell 环境名称目标gitbash.exeC:\Program Files\Git\bin\bash.exemsys2bash.cmdC:\msys64\usr\bin\bash.exewslbash.exeC:\Windows\System32\bash.exe三种 Shell 分别对应 Git Bash、MSYS2 Bash 与系统自带的 WSL Bash 入口。注意wslbash.exe指向系统bash.exe但如前述 WSL 在 Arm64 上不可用实际工作中应以 Git Bash默认gitbash.exe为主。MSYS2Pacman 6.1.0重要使用提示Readme 原文备注Location: C:\msys64 Note: MSYS2 is pre-installed on image but not added to PATH.MSYS2 预装于C:\msys64但没有加入系统 PATH——需要手动调用C:\msys64\usr\bin\bash.exe或通过msys2bash.cmd使用。toolset 中MsysPackages的msys2与mingw包列表均为空数组即镜像不做额外的 MSYS2 包预装。Cached Tools工具缓存镜像通过 GitHub Actions 工具缓存Toolcache默认目录C:\hostedtoolcache\windows见 variable.windows.pkr.hcl 的agent_tools_directory变量预置了多版本运行时Go1.24.13、1.25.14、1.26.8Node.js22.23.2、24.20.0Python3.12.10、3.13.15、3.14.7Ruby3.4.10这些版本由 toolset-win-11-arm64.json 的toolcache数组定义每个条目包含名称、架构、平台与版本通配符并链接到对应的 versions-manifest工具架构平台版本默认Rubyaarch64win323.43.4Pythonarm64win323.12.* / 3.13.* / 3.14.*3.13.*nodearm64win3222.* / 24.*—goarm64win321.24.* / 1.25.* / 1.26.*1.24.*Python、Node、Go 的版本清单分别来自 actions/python-versions、actions/node-versions、actions/go-versions 的远程 manifest 文件。报告脚本SoftwareReport.CachedTools.psm1通过读取AGENT_TOOLSDIRECTORY下的Go、Node、Python、Ruby目录并按版本号排序生成清单。注意 Arm64 镜像没有 PyPy 缓存Test-IsWin11-Arm64为真时跳过。setup-python、setup-node、setup-go等 Action 会优先命中这些缓存版本避免下载。另外node: { default: 24.* }指定默认 Node 版本为 24 系列。数据库工具Database toolsAzure CosmosDb Emulator 2.14.28.0DacFx 170.4.83.3MySQL 8.0.46.0SQL OLEDB Driver 18 18.7.5.0SQL OLEDB Driver 19 19.4.1.0与 x64 镜像不同Arm64 镜像不包含 PostgreSQL、MongoDB 与 mongosh见 Generate-SoftwareReport.ps1 中Test-IsX64条件分支MySQL 版本在 toolset 中固定为 8.0。Web 服务器Web Servers名称版本配置文件服务名服务状态监听端口Apache2.4.55C:\tools\Apache24\conf\httpd.confApacheStopped80Nginx1.31.5C:\tools\nginx-1.31.5\conf\nginx.confnginxStopped80两者默认安装但服务处于Stopped状态监听 80 端口需要在工作流中自行启动服务后再使用。Visual Studio Enterprise 2022版本17.14.37614.0安装路径C:\Program Files\Microsoft Visual Studio\2022\Enterprisetoolset 中对应的 VS 配置为版本 2022、子版本 17、版本类型 Enterprise、更新通道 release见 toolset-win-11-arm64.json 的visualStudio节点。在 Arm64 镜像上特别加入了 ARM64 相关的原生组件例如Component.UWP.VC.ARM64/Component.UWP.VC.ARM64ECUWP ARM64 工具链Component.VC.Tools.ARM64/Component.VC.Tools.ARM64ECARM64/ARM64EC 编译器Component.VC.ATL.ARM64/Component.VC.ATL.ARM64.SpectreARM64 ATL 与 Spectre 缓解Component.VC.MFC.ARM64/Component.VC.MFC.ARM64.SpectreARM64 MFCComponent.VC.Runtimes.ARM64.Spectre/Component.VC.Runtimes.ARM64EC.SpectreARM64 运行时Component.Microsoft.VisualStudio.Tools.Applications.amd64vsto 工具链工作负载、组件与扩展Workloads, components and extensionsReadme 完整列出了 Visual Studio 2022 的组件清单其中关键工作负载Workload包括CoreEditor、ManagedDesktop、ManagedGame、NativeCrossPlat、NativeDesktop、NativeGame、NetCrossPlat、NetWeb、Node、Universal、VisualStudioExtension 等 11 个跨平台移动开发通过ComponentGroup.Maui.*Maui.All / Android / Blazor / iOS / MacCatalyst / Shared / Windows与Component.Xamarin、ios、maccatalyst组件支持 MAUI/Xamarin 开发.NET MAUI相关运行时microsoft.net.runtime.android、microsoft.net.runtime.ios、microsoft.net.runtime.maccatalyst、microsoft.net.runtime.mono.tooling、microsoft.net.sdk.emscripten、runtimes.ios、runtimes.maccatalyst、wasm.tools均锁定在 9.0.1926.36724 版本。扩展vsix包括SSIS.MicrosoftDataToolsIntegrationServicesSSIS 集成服务工具2.2 与VisualStudioClient.MicrosoftVisualStudio2022InstallerProjectsArm643.0.0。Windows 平台相关组件包含 Windows Driver Kit 10.1.26100.6584、Windows SDK 10.1.26100.7705以及 .NET 组件.NET Core Runtime 8.0/9.0、SDK、.NET Framework 4.x 目标包等。Microsoft Visual C 运行时名称架构版本Microsoft Visual C 2013 Additional Runtimex6412.0.40660Microsoft Visual C 2013 Minimum Runtimex6412.0.40660Microsoft Visual C 2022 Additional Runtimex8614.51.36247Microsoft Visual C 2022 Debug Runtimex8614.44.35211Microsoft Visual C 2022 Minimum Runtimex8614.51.36247已安装的 Windows SDK10.0.19041.010.0.22621.010.0.26100.0三个 SDK 分别对应 Windows 10 2004、Windows 11 22H2 与 Windows 11 24H2/25H2 的开发目标。toolset 中Component.Windows10SDK.19041、Component.Windows11SDK.22621、Component.Windows11SDK.26100三个组件与之一一对应支持跨版本目标编译。.NET Core 工具.NET Core Tools.NET Core SDK6.0.136, 6.0.203, 6.0.321, 6.0.428, 8.0.130, 8.0.206, 8.0.319, 8.0.424, 9.0.120, 9.0.205, 9.0.317, 10.0.111, 10.0.204, 10.0.303, 10.0.400覆盖 6.0/8.0/9.0/10.0 四个主线版本.NET Framework4.7.2、4.8、4.8.1Microsoft.AspNetCore.App6.0.5, 6.0.26, 6.0.36, 8.0.6, 8.0.22, 8.0.30, 9.0.6, 9.0.19, 10.0.8, 10.0.11Microsoft.NETCore.App6.0.5, 6.0.26, 6.0.36, 8.0.6, 8.0.22, 8.0.30, 9.0.6, 9.0.19, 10.0.8, 10.0.11Microsoft.WindowsDesktop.App6.0.5, 6.0.26, 6.0.36, 8.0.6, 8.0.22, 8.0.30, 9.0.6, 9.0.19, 10.0.8, 10.0.11nbgv 3.10.94dea9a6c17cNerdbank.GitVersioning 命令行工具toolset 的dotnet节点配置了版本列表[6.0, 8.0, 9.0, 10.0]与全局工具nbgv并设置了warmup: false关闭 .NET 运行时预热。PowerShell 工具PowerShell ToolsPowerShell 7.6.5toolset 中pwsh: { version: 7.6 }已安装的 PowerShell 模块Az: 15.6.1Azure PowerShell 模块toolsetazureModules配置AWSPowershell: 5.0.293DockerMsftProvider: 1.0.0.8MarkdownPS: 1.10Microsoft.Graph: 2.39.0Pester: 3.4.0, 5.9.0PowerShellGet: 1.0.0.1, 2.2.5PSScriptAnalyzer: 1.25.0PSWindowsUpdate: 2.2.1.5SqlServer: 22.4.5.1VSSetup: 2.2.16这些模块与 toolset-win-11-arm64.json 的powershellModules列表一一对应其中 Pester 显式锁定 5.9.0。使用注意事项NotesReadme 特别提示Microsoft Defender is not disabled on this image. Tamper Protection is enabled by default on Windows 11 and prevents the image build from disabling it.与 x64 Windows 镜像不同该镜像未禁用 Microsoft DefenderWindows 11 默认开启的篡改防护Tamper Protection阻止了镜像构建阶段关闭 Defender 的操作见 Generate-SoftwareReport.ps1 中仅对Test-IsWin11-Arm64生效的备注逻辑。这意味着在windows-11-arm上运行构建时实时防护可能对编译产物、下载的可执行文件产生扫描开销若遇到文件被占用/被隔离类问题需要将此因素纳入排查范围。从配置到镜像构建原理纵深1. Toolset 是软件清单的唯一事实来源镜像中装什么、装哪个版本由 toolset-win-11-arm64.json 决定Readme 中的软件清单只是构建完成后由报告脚本生成的快照。两者的关系是toolset → 安装脚本执行 → 运行 Generate-SoftwareReport.ps1 采集各工具版本 → 输出C:\software-report.json与C:\software-report.md→ 再生成 Readme。因此查看本 Readme 时应结合 toolset 文件理解为什么是这个版本。2. Packer 模板定义构建过程镜像通过 Azure ARM Packer 构建images/windows/templates/source.windows.pkr.hclPacker 从 Marketplace 拉取干净基座镜像通过 WinRMcommunicator winrm启用 SSL 且允许 insecure连接临时 VM逐一执行安装步骤任一环节失败即中止并清理临时资源。构建成功后生成托管镜像并写入共享映像库shared_image_gallery_destination。具体手工构建命令与参数说明见 docs/create-image-and-azure-resources.md例如packer build -only ... -var image_oswin11-arm64配合images/windows/templates目录使用。3. 架构差异由脚本条件分支显式控制报告脚本通过Test-IsWin11-Arm64、Test-IsArm64、Test-IsX64等辅助函数区分镜像族这些分支直接对应 Readme 中缺失/特殊标注的工具WSL、Docker、Miniconda、PyPy、R 模拟运行、Defender 备注等。在windows-11-arm上编写工作流前建议对照本清单确认所需工具是否可用尤其注意容器类Docker/WSL与嵌套虚拟化相关能力在 Arm64 上的缺失。常见使用场景速查原生 Arm64 构建Go、Rust、Python、Node、Ruby、.NET6/8/9/10均为 Arm64 原生适合构建与发布 arm64 产物桌面/移动开发Visual Studio Enterprise 2022 已包含 MAUI、Xamarin、Android/iOS/Mac Catalyst 组件可交叉编译 Windows/Linux/Android/iOS 目标C/C 工具链VS 2022 的 ARM64/ARM64EC 编译器、LLVM 22.1.8、CMake 4.4.3、Ninja、vcpkg 一应俱全浏览器自动化Chrome/Edge/Firefox 与对应 WebDriver 已配置好环境变量可直接跑 Selenium 测试云原生开发Azure CLI、AWS CLI、阿里云 CLI、GitHub CLI、Helm、Kubectl、Kind、Pulumi、Bicep 均可开箱即用数据库相关可连接外部 MySQL/SQL Server镜像内置 OLEDB 驱动与 DacFx但本镜像不含本地 PostgreSQL/MongoDB 服务。【免费下载链接】runner-imagesGitHub Actions runner images项目地址: https://gitcode.com/GitHub_Trending/ru/runner-images创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考