Il existe différente façon de faire tourner SonarQube sur Windows.

Mon choix s’est porté sur Docker pour sa simplicité et sa portabilité. SonarQube fournit une image officielle, autant en profiter.

Cet article fait l’hypothèse que vous avez un environnement Docker fonctionnel.

Prérequis

Pour assurer la persistance de l’installation, nous allons créer des répertoires sur le disque. Ces répertoires contiendront :

  • La base de données

  • La configuration

  • Les plugins

  • Les logs

  • etc.

Pour ce faire, ouvrir un prompt PowerShell et exécuter les commandes suivantes :

$SONARQUBE_HOME="C:\temp\sonarqube"
mkdir $SONARQUBE_HOME
mkdir $SONARQUBE_HOME/conf
mkdir $SONARQUBE_HOME/extensions
mkdir $SONARQUBE_HOME/logs
mkdir $SONARQUBE_HOME/data

Récupérer SonarQube

Récupérons maintenant SonarQube. Il existe différentes versions disponibles sur Docker Hub mais nous allons utiliser l’image officielle et la version 8.1 community.

docker pull sonarqube:8.1-community-beta

Exécuter SonarQube

Une seule ligne de commande est nécessaire pour faire tourner SonarQube. Toujours dans le prompt PowerShell (noter les ` ci-dessous), exécuter :

docker run -d --name sonarqube `
  -p 8000:9000 ` (1)
  -v $SONARQUBE_HOME/conf:/opt/sonarqube/conf ` (2)
  -v $SONARQUBE_HOME/extensions:/opt/sonarqube/extensions `
  -v $SONARQUBE_HOME/logs:/opt/sonarqube/logs `
  -v $SONARQUBE_HOME/data:/opt/sonarqube/data `
  -e sonar.forceAuthentication=true ` (3)
  -e sonar.telemetry.enable=false `
  sonarqube:8.1-community-beta (4)
1 Sur mon poste, le port 9000 étant déjà pris, j’ai fait correspondre le port 9000 de SonarQube avec mon port 8000. Avec cette commande, SonarQube sera donc accessible à l’adresse http://localhost:8000
2 Suis une série de ligne pour créer des volumes, c’est-à-dire faire correspondre un répertoire local avec un répertoire dans le container
3 Il est possible de configurer SonarQube en passant des paramètres au démarrage
4 On retrouve ici la version 8.1 Community

Comme le container est présent sur le poste, il démarre rapidement.

Après quelques minutes, en accédant à http://localhost:8000, vous aurez l’écran de login. Il ne restera plus qu’à saisir admin/admin :

Login SonarQube

cette version 8.1 vient avec tous les analyseurs de code standard (C#, JS, etc.). Des profils de base sont créés, il est donc possible de passer directement à la création d’un projet)

Arrêter SonarQube

Lorsque SonarQube n’est plus nécessaire, il est possible de l’arrêter :

docker stop sonarqube

Et pour reprendre ultérieurement :

docker start sonarqube

Nettoyage

Et si vous voulez nettoyer, 2 commandes pour supprimer le container et l’image :

docker rm sonarqube
docker image rm sonarqube