Azure ADO构建流水线触发Ubuntu 16.04停服报错问题咨询
问题解决步骤
第一步:核对全链路代理配置
- 确认你修改的是全流水线的vmImage配置,而非单作业的局部配置:如果你的流水线包含多个独立作业,部分作业可能单独指定了
ubuntu-16.04代理,未继承全局配置。
正确全局配置示例:
多作业场景下每个作业都需单独指定代理版本:pool: vmImage: 'ubuntu-20.04'jobs: - job: build pool: vmImage: 'ubuntu-20.04' steps: - script: echo build - 排查是否混用带错误标签的自托管代理:如果你的组织同时使用自托管代理池,检查自托管代理是否打上了
ubuntu-latest/ubuntu-20.04标签,但底层实际是Ubuntu 16.04系统。
第二步:清理流水线缓存后重跑
Azure DevOps会对旧的流水线配置生成缓存,修改配置后先手动清除所有流水线缓存(操作路径:管道详情页 -> 更多操作 -> 清理缓存),清除后不要用带缓存的重试功能,手动触发一次全新的流水线运行。
第三步:排查任务与脚本依赖
- 检查流水线使用的第三方扩展任务:部分旧版本第三方任务会强制绑定Ubuntu 16.04运行环境,即使上层代理是20.04也会触发停服检测。将所有第三方扩展更新到最新版本,或替换为官方内置任务。
- 检查自定义脚本是否写死系统版本逻辑:部分脚本可能内置了Ubuntu 16.04专属的源配置、版本检测逻辑,修改脚本适配20.04系统即可。
第四步:核对组织级代理规则
联系你的DevOps组织管理员,确认组织层面是否对Ubuntu系列代理做了强制重定向配置,部分组织为了统一运行环境,会将所有Ubuntu代理请求默认重定向到16.04资源池。
如果以上步骤全部排查完成仍存在问题,可在DevOps管理后台提交官方工单,申请工程师后台核查你的组织流水线资源绑定情况。
内容的提问来源于stack exchange,提问作者Nico
相关产品推荐
相关产品推荐

