Docker - Jenkins 无法访问 sonarqube(通过 localhost/127.0.0.1:9000)

Docker - Jenkins unable to reach sonarqube (via localhost/127.0.0.1:9000)

首先,我知道 Whosebug 上有大量关于此问题的类似 post,我已经尝试了所提供的“解决方案”。在“配置系统”中使用 localhost IP 或 Sonar Docker IP 作为 URL。但是这两种方法似乎都不适用于我的情况。我哪里配置错了?

声纳Docker命令:

docker run -d --name sonarqube -e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true -p 9000:9000 sonarqube:latest

Jenkins Docker 命令:

docker run \
  --name jenkins-docker \
  --rm \
  --detach \
  --privileged \
  --network jenkins \
  --network-alias docker \
  --env DOCKER_TLS_CERTDIR=/certs \
  --volume jenkins-docker-certs:/certs/client \
  --volume jenkins-data:/var/jenkins_home \
  --publish 3000:3000 \
  --publish 2376:2376 \
  docker:dind \
  --storage-driver overlay2

Docker网络

配置系统 - “Secret Text”包含我从 SonarQube 获得的令牌

全局工具配置

管道脚本

pipeline { 
    agent any 
    stages { 
        stage ('Checkout') { 
            steps { 
                git branch:'master', url: 'https://github.com/OWASP/Vulnerable-Web-Application.git' 
            } 
        } 
         
        stage('Code Quality Check via SonarQube') { 
           steps { 
               script { 
                def scannerHome = tool 'SonarQube'; 
                   withSonarQubeEnv('SonarQube') { 
                   sh "${scannerHome}/bin/sonar-scanner -Dsonar.projectKey=OWSAP -Dsonar.sources=." 
                   } 
               } 
           } 
        } 
    } 
    post { 
        always { 
            recordIssues enabledForFailure: true, tool: sonarQube() 
        } 
    } 
} 

在构建 sonarqube 容器时尝试使用 --network jenkins

或者不使用--network参数,默认为两个容器都使用bridge模式

Jenkins 和 Sonarqube 应该是同一个网络。 然后尝试使用 http://172.17.0.1:9000http://sonarqube:9000 如果 http://localhost:9000 不起作用。