通过 docker 图像错误 运行 声纳扫描仪

Error running sonar-scanner via docker image

我通过 docker 在 mac

上安装声纳扫描仪

(https://hub.docker.com/r/sonarsource/sonar-scanner-cli) 并且出现错误“您必须为 'Unknown' 定义以下强制属性:sonar.projectKey”。

我做了以下事情:

1: 在JS项目根目录添加sonar-scanner.properties文件

# Required metadata
sonar.projectKey=my-app
sonar.projectName=Franchise
sonar.projectVersion=1.0

# Comma-separated paths to directories with sources (required)
sonar.sources=server/app.js,pages,components

2 已安装 docker 和扫描仪

这是我的 docker 命令

docker 运行 --rm -e SONAR_HOST_URL="https://sonarqube.comp.com/" -e SONAR.PROJECTKEY="my-app " -v "/git/franchises" sonarsource/sonar-scanner-cli

请问如何正确传递信息。

谢谢

运行 SonarQube 服务器作为 Docker 图片:

  • $ docker pull sonarqube:7.9.4-community
  • $ docker run -d --name sonarqube -e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true -p 9000:9000 sonarqube:7.9.4-community
  • 登录http://localhost:9000(登录名=admin,密码=admin)
  • (确保 - sonarqube 服务器 运行 在 localhost:9000)

运行 SonarScanner 作为 Docker 图片:

  • $ docker pull newtmitch/sonar-scanner:4-alpine

  • 转到项目的根目录

  •  $ docker run -it -v $(pwd):/usr/src --link sonarqube:7.9.4-community newtmitch/sonar-scanner:4-alpine \
         -D sonar.host.url=http://sonarqube:9000 \
         -D sonar.scm.provider=git  \
         -D sonar.projectBaseDir=./src \
         -D sonar.sources=. \
         -D sonar.projectName='Test-Project'
    
  • (注意:以上我假设你的源代码在-src文件夹中,如果不是请相应更改)

  • 转到 http://localhost:9000 您现在将看到一个新项目 - “Test-Project”,它已经完全分析了您 运行 的源代码从你的根目录。

  • 文档click

使用“sonarqube-scanner”包(SonarScanner 的替代品,特定于 js/ts 语言):

  • $ npm i -D sonarqube-scanner

  • 在package.json中添加一个新脚本:"sonar": "node sonar-project.js"

  • 在你的root-directory中添加一个文件:sonar-project.js

  • 在sonar-project.js中复制以下代码:

     const sonarqubeScanner = require('sonarqube-scanner');
     sonarqubeScanner({
     serverUrl: 'http://localhost:9000',
     options: {
       'sonar.sources': 'src',
       'sonar.tests': 'src',
       'sonar.inclusions': 'src/**/*.ts', // Entry point of your code
       'sonar.test.inclusions': 'src/**/*.spec.ts,src/**/*.spec.jsx',
       },
     }, () => {
     console.log('Error Occurred while scanning');                    
     });
    
  • $ npm run sonar

  • 文档click

有点晚了,但这里有一个解决方案:

docker run --rm -e SONAR_HOST_URL="https://sonarqube.comp.com/" -v "/git/franchises" sonarsource/sonar-scanner-cli -Dsonar.projectKey=my-app

https://github.com/SonarSource/sonar-scanner-cli-docker/issues/26 所述,您可以附加任何 -Dsonar.xxx 属性.

我来晚了,但你也可以使用 .properties 文件,但它应该命名为 sonar-project.properties.