You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Pipeline Windows代理无法通过WSL运行Bash脚本的问题

解决Azure Pipeline Windows代理上WSL脚本执行失败的问题

问题根源

Azure Pipeline的Windows代理是通过系统账户运行的,它的WSL环境和你本地用户的WSL环境完全隔离。你本地用户安装的Ubuntu,系统账户根本看不到,所以执行bash脚本时会提示没有安装WSL发行版。

可行解决方案

1. 为系统账户部署WSL发行版

  • 用管理员权限打开PowerShell,执行命令直接安装Ubuntu(无需通过微软商店):
    wsl --install -d Ubuntu
    
  • 安装完成后,初始化系统账户的WSL环境:
    wsl -d Ubuntu --user root
    
    按照提示设置初始用户名和密码,完成环境初始化即可。

2. 改用PowerShell脚本替代Bash脚本

既然是Windows代理,完全可以跳过WSL,直接用原生PowerShell实现相同逻辑,步骤更简单:

$Pat = "myPat"
$B64Pat = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($Pat))
git -c "http.https://<url>.extraheader=AUTHORIZATION: basic $B64Pat" submodule update --init --recursive

这个方案不需要配置任何WSL环境,直接在Windows原生环境运行,兼容性更稳定。

3. 关于Docker代理作为默认发行版的疑问

Docker Desktop自带的WSL发行版(如docker-desktop)是专为Docker运行设计的,没有完整的用户环境和必要工具(比如git),不适合用来运行你的git子模块更新脚本。所以不建议将其设为默认发行版来解决当前问题。

内容的提问来源于stack exchange,提问作者Intolighter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 16:07:06