嗨,我正在尝试让 Sonarqube 与 Jenkins 合作。我让 jenkins 作为 docker 映像运行,Sonarqube 服务器在我的主机上作为两个单独的 docker 映像运行。我正在使用 Jenkins 的 SonarScanner 插件来扫描我的项目。但是,当我尝试运行我的管道时,“/var/jenkins_home/tools/hudson.plugins.sonar.SonarRunnerInstallation/test/bin/sonar-scanner”bash 脚本会返回错误could not find 'java' executable in JAVA_HOME or PATH
。
这很奇怪,因为我可以echo JAVA_HOME
在我的 Jenkins 容器中成功。但是,当我尝试echo
在 bash 脚本中时,它什么也不返回。我还尝试在脚本中手动设置 JAVA_HOME 变量,但发现脚本无法执行 java。我也听从了这篇文章的建议:
用于反应的 Jenkins 管道在 JAVA_HOME 或 PATH 中找不到“java”可执行文件
但它仍然不起作用。这是我的 Jenkins 管道脚本
pipeline {
agent {
docker {
image 'node:6-alpine'
args '-p 3000:3000'
}
}
environment {
CI = 'true'
scannerHome = tool 'test'
}
stages {
stage('Build') {
steps {
sh 'npm install'
}
}
stage('SonarQube analysis') {
agent{ docker { image 'openjdk' } }
steps{
withSonarQubeEnv('sonar') {
sh "${scannerHome}/bin/sonar-scanner"
}
}
}
stage('Test') {
steps {
sh './jenkins/scripts/test.sh'
}
}
stage('Deliver') {
steps {
sh './jenkins/scripts/deliver.sh'
input message: 'Finished using the web site? (Click "Proceed" to continue)'
sh './jenkins/scripts/kill.sh'
}
}
}
}