当前位置: 首页 > 知识库问答 >
问题:

Docker容器中的SonarQube扫描

华煜祺
2023-03-14

我试图通过Jenkins管道构建我的TypeScript应用程序。为了管理构建、测试和代码质量扫描,我让Jenkins使用一个基于Node:7-Alpine的Docker代理。

容器的Dockerfile是:

FROM node:7-alpine

RUN npm install -g gulp sonarqube-scanner 

我的Jenkins文件看起来像:

pipeline {
   agent {
      dockerfile { dir 'build-image' }
   }
    stages {
        stage('Build') {
            steps {
                  sh 'npm install'
                  sh 'npm run build'
            }       
        }
        stage("SonarQube Analysis") {
           steps{
              sh 'gulp sonar'
           }
        }
    null

[03:00:14]开始SonarQube分析...

[03:00:14]检查可执行文件是否存在:/home/node/.sonar/native-sonar-scanner/sonar-scanner-3.0.3.778-linux/bin/sonar-scanner

[03:00:14]在“/home/node/.sonar/native-sonar-scanner”中找不到可执行文件。

[03:00:14](可执行文件将保存在缓存文件夹:/home/node/.sonar/native-sonar-scanner中)

/home/node/.sonar/native-sonar-scanner/sonar-scanner-3.0.3.778-linux/bin/sonar-scanner:exec:line73://home/node/.sonar/native-sonar-scanner/sonar-scanner-3.0.3.778-linux/jre/bin/java:未找到

child_process.js:504

throw err;

^

共有1个答案

鲁钱明
2023-03-14

我也犯了同样的错误。我不知道这个错误的原因,但是解决方法是使用Node的非Alpine版本。也许你可以使用多级docker构建,这样你的最终图像无论如何都是基于阿尔卑斯版本的。

 类似资料:
  • 我希望对git存储库代码执行SonarQube分析,并且希望使用Docker容器中的SonarScanner,而不是Jenkins配置中的SonarScanner。

  • 在SonarQube runner中,可以通过sonar project属性中的sonar.exclusions属性来管理排除的项目。通过这种方式,我们可以独立于代码库来管理构建配置。 当项目文件夹被称为***.tests时,在将其添加到排除设置后,仍会对其进行扫描。

  • 我正在使用Jenkins为我的.NET项目(C#)运行SonarQube。 使用MsBuild:MsBuild版本:MsBuild 4.6 MsBuild文件:ci.sln命令行参数:/p:configuration=release/target:Build构建Visual Studio项目或解决方案 用于MSBuild-End分析的SonarQube扫描器 我可以为Visual Studio20

  • 我正在尝试从我的jenkins节点运行soanrQube扫描,Sonar scanner版本是SonarQube scanner 3.1.0.1141,SonarQube服务器是SonarQube服务器5.6.4。得到以下错误,有谁能在这方面帮助我。

  • 我认为这是因为容器没有JAVA_HOME变量集。我执行了和尝试命令,但它没有显示java可执行文件。此外,java和javac命令不起作用。 有人知道我做错了什么吗?如有任何帮助,不胜感激。提前感谢!

  • 有人知道MSBuild的SonarQube扫描器是作为构建的一部分进行扫描并只将结果发回给SonarQube,还是EXE正在检测,我们可以将工件发送到Linux机器上的SonarQube进行分析,类似于使用sonar-scanner-cli扫描java工件的方式?