Ошибка при запуске сонара-сканера через изображение docker

#sonarqube #sonarqube-scan

#sonarqube #sonarqube-scan

Вопрос:

Я устанавливаю sonar-scanner через docker на свой mac

(https://hub.docker.com/r/sonarsource/sonar-scanner-cli ) и я получаю сообщение об ошибке «Вы должны определить следующие обязательные свойства для ‘Unknown’: sonar.projectKey».

Я сделал следующее:

1. добавьте файл sonar-scanner.properties в корень JS project

 # 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

Может, пожалуйста, дайте мне знать, как правильно передать информацию.

Спасибо

Ответ №1:

Запустите сервер SonarQube как Docker Image:

  • $ 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 (логин = администратор, пароль= администратор)
  • (убедитесь, что сервер sonarqube запущен на локальном хосте: 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», который полностью проанализировал исходный код, который вы запустили из своего корневого каталога.

  • Документация нажмите

Использование пакета «sonarqube-scanner» (альтернатива для SonarScanner, специфичная для языка js / ts):

  • $ npm i -D sonarqube-scanner

  • В package.json добавьте новый скрипт: "sonar": "node sonar-project.js"

  • добавьте файл в свой корневой каталог: 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

  • Документация нажмите

Ответ №2:

Немного поздно, но вот решение:

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 свойство.

Комментарии:

1. Спасибо, что указали мне в этом направлении! Мне нужно было добавить пробел между -D и sonar.projectKey=my-app , чтобы заставить его работать. В противном случае я получил ERROR: Unrecognized option: .projectKey=my-app , что довольно странно, поскольку все официальные документы используются -Dsonar.xxx .

2. Если вы используете Windows, лучше всего использовать -D "arg=value" .

Ответ №3:

Я опаздываю на вечеринку, но вы также можете использовать .properties файл, за исключением того, что он должен быть назван sonar-project.properties .