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:9000
或 http://sonarqube:9000
如果 http://localhost: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:9000
或 http://sonarqube:9000
如果 http://localhost:9000
不起作用。