Jenkins 您可能无法访问本地主机

Jenkins 您可能无法访问本地主机,jenkins,sonarqube,Jenkins,Sonarqube,我试图通过jenkins管道脚本构建sonarqube,在构建过程中,我遇到了无法访问localhost 9000的错误 15:30:58.225 ERROR: SonarQube server [http://localhost:9000] can not be reached 15:30:58.225 INFO: ------------------------------------------------------------------------ 15:30:58.226 INFO

我试图通过jenkins管道脚本构建sonarqube,在构建过程中,我遇到了无法访问localhost 9000的错误

15:30:58.225 ERROR: SonarQube server [http://localhost:9000] can not be reached
15:30:58.225 INFO: ------------------------------------------------------------------------
15:30:58.226 INFO: EXECUTION FAILURE
15:30:58.226 INFO: ------------------------------------------------------------------------
15:30:58.227 INFO: Total time: 0.603s
15:30:58.243 INFO: Final Memory: 3M/121M
15:30:58.245 INFO: ------------------------------------------------------------------------
15:30:58.246 ERROR: Error during SonarQube Scanner execution
org.sonarsource.scanner.api.internal.ScannerException: Unable to execute SonarQube
    at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory.lambda$createLauncher$0(IsolatedLauncherFactory.java:85)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory.createLauncher(IsolatedLauncherFactory.java:74)
    at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory.createLauncher(IsolatedLauncherFactory.java:70)
    at org.sonarsource.scanner.api.EmbeddedScanner.doStart(EmbeddedScanner.java:185)
    at org.sonarsource.scanner.api.EmbeddedScanner.start(EmbeddedScanner.java:123)
    at org.sonarsource.scanner.cli.Main.execute(Main.java:73)
    at org.sonarsource.scanner.cli.Main.main(Main.java:61)
Caused by: java.lang.IllegalStateException: Fail to get bootstrap index from server
    at 
Caused by: java.net.ConnectException: Failed to connect to localhost/127.0.0.1:9000
注意:我可以在y浏览器中访问我的localhost sonar 9000,并且在上面的jenkins输出中有一个构建点url,比如localhost:9000,也可以从jenkins日志访问,但是在这行的末尾有一行,比如无法访问主机127.0.0.1

vi /etc/hosts
127.0.0.1 sonarqube

由于您的Jenkins正在docker容器中运行构建,如注释中所述,解决方案是使用IP地址或本地DNS名称从构建脚本中访问sonarqube,因为localhost不会解析为docker容器中的主机。

我认为这与代理有关。 如果您正在代理后运行sonar生命周期,请在Maven.m2/settings.xml中注释代理指令块


Jenkins是否在docker容器中执行构建?是的,我正在管道脚本中使用pod容器模板。我是否要在此处更新我的脚本?嗨,Ale,请帮助我们,由于此问题,我们正在影响整个项目。从容器中,无法作为本地主机访问主机。请改用外部DNS名称(或ip)。另外,你读过这个q/a吗:嗨,Alex,谢谢你的快速回复,我在/etc/hosts文件中有更新IP地址,比如10.0.0.4 localhost
def label = "worker-${UUID.randomUUID().toString()}"

podTemplate(label: label, containers: [
        containerTemplate(name: 'nodejs', image: 'node:10-buster', ttyEnabled: true, command: 'cat'),
            containerTemplate(name: 'docker', image: 'docker:1.12.6', command: 'cat', ttyEnabled: true),
    containerTemplate(name: 'sonarqube', image: 'sonarsource/sonar-scanner-cli:latest', command: 'cat', ttyEnabled: true),
    containerTemplate(name: 'kubectl', image: 'lachlanevenson/k8s-kubectl:v1.8.3', command: 'cat', ttyEnabled: true)

],
volumes: [
   hostPathVolume(mountPath: '/var/run/docker.sock', hostPath: '/var/run/docker.sock'),
]) {
  node(label) {
    def myRepo = checkout scm
    def gitCommit = myRepo.GIT_COMMIT
    def gitBranch = myRepo.GIT_BRANCH
    def shortGitCommit = "${gitCommit[0..10]}"
    def previousGitCommit = sh(script: "git rev-parse ${gitCommit}~", returnStdout: true)



    stage('sonar-scanner') {
     container('sonarqube') {
       sh "/opt/sonar-scanner/bin/sonar-scanner -X -Dsonar.host.url=http://localhost:9000 -Dsonar.login=admin"
      }
  }


}

}