0

嗨,我正在尝试让 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' 
            }
        }
    }
}

4

0 回答 0