2016-11-15 3 views
0

я добавил анализ шаг SonarQube Scanner моей Дженкинс строить, но шаг не удается:сервера SonarQube не может быть достигнут с помощью Jenkins Docker

[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 Scanner объявлен в Дженкинс глобальной конфигурации инструмента. Используемое имя - «http://SERVER_IP_ADDRESS:9000». Это тот же адрес, что и базовый URL-адрес сервера, который я установил в общих настройках SonarQube.

Я использую Docker: Дженкинс находится в контейнере Докера, а также SonarQube.

«Неожиданный url», упомянутый в stacktrace SERVER_IP_ADDRESS:9000/batch_bootstrap/index, можно открыть в браузере, , который отображает sonar-scanner-engine-shaded-6.1.jar|SOME_LETTERS_AND_NUMBERS. Так почему же Дженкинс не может добраться до сервера?

Я также попытался с Докер внутренний IP-адрес, который может быть найден с:

docker inspect SONARQUBE_CONTAINER_ID | grep IP 

ответ

3

Найти место, где вы определяете «неожиданную URL», упомянутый в StackTrace (параметр sonar.host.url из SonarQube Scanner) и с префиксом http://.

URL-адреса должны начинаться со схемы - см. Wikipedia. Браузер просто добавляет http:// по умолчанию.

+0

Действительно, мы можем увидеть в первой строке консоли, которая устанавливается неправильный хост URL: 'сонар-сканер -e -Dsonar.host.url = server_ip_address: 9000' Я попытался изменить значения по умолчанию в sonar-scanner.properties, но неправильный URL-адрес хоста не появляется оттуда. Я попытаюсь найти, какой сценарий вызывает сонар-сканер с этим аргументом. – RotS

+0

Я, наконец, нашел место, где был установлен «неожиданный url»: Управление Jenkins -> Конфигурирование системы -> Серверы SonarQube -> \t Установки SonarQube -> URL-адрес сервера Отсутствие там 'http: //'. Я думал, что проверил каждую страницу Дженкинса, но не эту. Благодарим вас за помощь. – RotS