流水线集成sonarqube检测python代码。
麻烦指导给出一种解决方案。
告知一下哪个容器也可以,我可以到容器里面自己装一个sonar检测器
非常感谢!!!

后来
我尝试将sonar-scanner下载后放到了gitlab仓库中,试图利用便携式的sonar-scanner检测python代码质量。
经测试,在本地环境,可以通过这种方式检测成功代码并在sonarqube网页显示报告。
bin/sonar-scanner -Dsonar.host.url=http://192.168.10.56:32409 -Dsonar.login=$SONAR_TOKEN -Dproject.settings=../sonar.properties

但当我试图在Jenkinsfile中执行相同操作时,报出以下错误:

pipeline如下:

calvinyu
非常感谢!

我尝试了以上方案。

No tool named SonarQube Scanner 2.8 found

我排除了以下情况:
1、参照官网以及你的链接,def scannerHome = tool ‘SonarScanner’;尝试了不同版本,以及使用默认版本,均No tool named SonarQube Scanner found
2、排查jenkins插件,经检查,kubesphere内置的jenkins默认安装了sonarqube2.8.1。
3、排查jenkins全局环境的sonarqube service

鉴于之前sonarqube测Java没问题,我又重复试了3遍,大概问题也不在这。

请问我该如何进一步排错或者如何才能实现题目的功能。
非常感谢!

calvinyu

后续:

我在jenkins中开启了自动安装后,上一情况得到解决。出现新的错误
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
groovy.lang.MissingPropertyException: No such property: scannerHome for class: groovy.lang.Binding
at groovy.lang.Binding.getVariable(Binding.java:63)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:270)
at org.kohsuke.groovy.sandbox.impl.Checker$6.call(Checker.java:291)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:295)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:271)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:271)
等等

sonar-scanner 在容器 base 中,因此,你需要把先切换容器:

container('base') {
    sh 'sonar-scanner xxxxxxx'
}