jenkins - Jenkins使用Docker无法访问SonarQube服务器

标签 jenkins docker sonarqube sonarqube-ops

我已经在我的Jenkins构建中添加了SonarQube Scanner分析步骤,但是该步骤失败了:

[Test_gitlab] $ /var/jenkins_home/tools/hudson.plugins.sonar.SonarRunnerInstallation/http_INTERNAL_DOCKER_IP_ADDRESS_9000/bin/sonar-scanner -e -Dsonar.host.url=SERVER_IP_ADDRESS:9000 ******** -Dsonar.projectBaseDir=/var/jenkins_home/workspace/Test_gitlab
INFO: Option -e/--errors is no longer supported and will be ignored
INFO: Scanner configuration file: /var/jenkins_home/tools/hudson.plugins.sonar.SonarRunnerInstallation/http_INTERNAL_DOCKER_IP_ADDRESS_9000/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarQube Scanner 2.8
INFO: Java 1.8.0_102 Oracle Corporation (64-bit)
INFO: Linux 3.10.0-327.10.1.el7.x86_64 amd64
INFO: User cache: /var/jenkins_home/.sonar/cache
ERROR: SonarQube server [SERVER_IP_ADDRESS:9000] can not be reached
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 0.214s
INFO: Final Memory: 4M/209M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarQube Scanner execution
org.sonarsource.scanner.api.internal.ScannerException: Unable to execute SonarQube
    at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory$1.run(IsolatedLauncherFactory.java:84)
    at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory$1.run(IsolatedLauncherFactory.java:71)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory.createLauncher(IsolatedLauncherFactory.java:71)
    at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory.createLauncher(IsolatedLauncherFactory.java:67)
    at org.sonarsource.scanner.api.EmbeddedScanner.doStart(EmbeddedScanner.java:218)
    at org.sonarsource.scanner.api.EmbeddedScanner.start(EmbeddedScanner.java:156)
    at org.sonarsource.scanner.cli.Main.execute(Main.java:72)
    at org.sonarsource.scanner.cli.Main.main(Main.java:61)
Caused by: java.lang.IllegalStateException: Fail to download libraries from server
    at org.sonarsource.scanner.api.internal.Jars.downloadFiles(Jars.java:93)
    at org.sonarsource.scanner.api.internal.Jars.download(Jars.java:70)
    at org.sonarsource.scanner.api.internal.JarDownloader.download(JarDownloader.java:39)
    at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory$1.run(IsolatedLauncherFactory.java:75)
    ... 8 more
Caused by: java.lang.IllegalArgumentException: unexpected url: SERVER_IP_ADDRESS:9000/batch_bootstrap/index
    at org.sonarsource.scanner.api.internal.shaded.okhttp.Request$Builder.url(Request.java:141)
    at org.sonarsource.scanner.api.internal.ServerConnection.callUrl(ServerConnection.java:109)
    at org.sonarsource.scanner.api.internal.ServerConnection.downloadString(ServerConnection.java:98)
    at org.sonarsource.scanner.api.internal.Jars.downloadFiles(Jars.java:78)
    ... 11 more
ERROR: 
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.
ERROR: SonarQube scanner exited with non-zero code: 1
Finished: FAILURE

我的SonarQube扫描仪在Jenkins全局工具配置中声明。使用的名称是“http://SERVER_IP_ADDRESS:9000”。这是与我在SonarQube常规设置中设置的服务器基本URL相同的地址。

我正在使用Docker:Jenkins在Docker容器中,SonarQube也是如此。

可以在浏览器中打开stacktrace SERVER_IP_ADDRESS:9000/batch_bootstrap/index中提到的“意外网址”,
显示sonar-scanner-engine-shaded-6.1.jar|SOME_LETTERS_AND_NUMBERS
那么, Jenkins 为什么无法到达服务器?

我还尝试使用Docker内部IP地址,该地址可以通过以下方式找到:
docker inspect SONARQUBE_CONTAINER_ID | grep IP

最佳答案

查找定义堆栈跟踪中提及的“意外URL”(SonarQube Scanner的参数sonar.host.url)并在其前面加上http://的位置。

URL必须以方案开头-请参见Wikipedia。浏览器默认只是添加http://

关于jenkins - Jenkins使用Docker无法访问SonarQube服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40617031/

相关文章:

sonarqube - 使用热部署编写/调试 Sonar 插件

groovy - 使用System groovy脚本从Jenkins工作区读取文件

jenkins - 如何在多分支管道项目中为每个分支级别的用户提供访问权限?

node.js - 从 docker 容器中的编译代码中获取编辑器中的智能感知

docker - 将kubernetes定义中定义的env值扩展到容器

java - 设置本地 Sonar(服务器)与在 Eclipse 中使用所有插件 checkstyles、pmd、findbugs

jenkins - 在 Jenkins 上重新运行失败测试的插件

Jenkins 条件阶段变更集始终被跳过

java - 为什么使用 Docker 时会出现 OOM?

azure-devops - 当我尝试将 sonarqube 与 azure devops 构建管道连接时出现以下错误