SonarQube企业版集成Azure流水线时报ETIMEOUT错误如何解决?
报错根因与排查方案
当前流水线失败的直接原因是:Azure流水线运行代理无法和你配置的企业版SonarQube服务建立网络连接,请求/api/server/version接口时触发连接超时错误,该问题发生在Sonar扫描执行前的服务连通性校验阶段,和扫描工具是否安装无关。
可按以下步骤排查修复:
- 确认流水线运行的代理类型:如果使用微软托管的公共运行代理,你的企业内部部署的SonarQube服务通常不会对公网开放访问权限,公共代理自然无法连通,建议更换为部署在企业内网、可正常访问SonarQube服务的自托管代理运行流水线。
- 若已使用自托管代理,登录代理所在服务器,手动执行
curl https://sonarprod.abc.xyz/api/server/version测试连通性,排查企业防火墙、出口代理是否限制了代理到SonarQube服务443端口的出站访问权限,确认网络策略放通后再重试。 - 修正现有YAML配置的冗余问题:你已经在Azure中配置了名为
SONARSERVICECONNECTION的SonarQube服务连接,无需在extraProperties中重复填写sonar.host.url和sonar.login参数,服务连接会自动注入这两个配置,重复填写反而可能引发认证冲突,建议删除这两行配置。 - 修正测试路径配置错误:你重复声明了两次
sonar.test.inclusions参数,后一次配置会覆盖前一次,建议合并为sonar.test.inclusions=**/*Test*/**,*.swift。
Sonar Scanner安装说明
- 如果你使用Azure官方提供的SonarQube任务组合(
SonarQubePrepare+SonarQubeAnalyze+SonarQubePublish),不需要手动提前安装Sonar Scanner,SonarQubePrepare任务在运行时会自动下载匹配版本的CLI扫描工具到代理的临时工作目录,分析完成后自动清理,无需额外配置。 - 仅当你需要手动执行扫描命令时,才需要单独安装Sonar Scanner,安装路径可选择代理节点上的任意公共目录,配置好系统环境变量即可正常调用。
内容的提问来源于stack exchange,提问作者Akaanksha
相关产品推荐
相关产品推荐

