Aller au contenu

SonarQube : Présentation, Fonctionnalités et Tuto pour démarrer via Docker

SonarQube est une plateforme open source conçue pour analyser la qualité du code et fournir des recommandations d’amélioration en matière de lisibilité, de sécurité et de performance. En permettant de détecter les bugs, vulnérabilités et problèmes de maintenance dans le code, SonarQube aide les développeurs et les équipes à garantir la stabilité et la sécurité des applications.


Qu’est-ce que SonarQube et que fait-il ?

SonarQube analyse le code source d’une application pour identifier les problèmes potentiels. Les analyses peuvent être configurées pour détecter des centaines de règles de codage, qui peuvent varier selon le langage (Java, JavaScript, Python, PHP, C#, etc.). Voici quelques-unes des fonctionnalités principales :

  • Analyse de la qualité du code : SonarQube détecte les duplications de code, les erreurs potentielles, et les « mauvaises pratiques » (bad practices) qui pourraient causer des problèmes de maintenance à long terme.
  • Vulnérabilités de sécurité : Il analyse le code pour détecter les failles de sécurité connues, comme l’injection SQL, les erreurs de gestion de sessions, et d’autres vulnérabilités critiques.
  • Détection de code complexe : SonarQube identifie les blocs de code particulièrement complexes ou difficiles à maintenir, permettant ainsi d’améliorer la lisibilité et la maintenance du code.
  • Analyse multi-langage : SonarQube prend en charge une variété de langages de programmation, ce qui en fait un outil polyvalent pour les environnements multi-technologiques.
  • Intégration avec CI/CD : SonarQube peut être intégré à divers outils de pipeline CI/CD pour automatiser l’analyse à chaque modification de code, garantissant que les nouvelles versions respectent les normes de qualité.

Ce que SonarQube ne fait pas

Bien que SonarQube soit un excellent outil d’analyse de code, il est important de noter qu’il ne remplace pas entièrement les tests manuels ou d’autres formes de tests automatisés :

  • Pas un outil de test fonctionnel : SonarQube n’exécute pas de tests fonctionnels ni de tests de performance. Il ne valide pas si le code fonctionne comme attendu dans l’application.
  • Ne remplace pas les audits manuels : Certains problèmes nécessitent une analyse contextuelle plus profonde qu’un audit automatique. Les audits manuels restent cruciaux pour identifier les problématiques spécifiques au métier ou les nuances de l’application.
  • Pas d’analyse dynamique en temps réel : SonarQube analyse le code statiquement, c’est-à-dire sans l’exécuter. Par conséquent, il ne détectera pas certains problèmes qui ne sont révélés qu’à l’exécution.

Lancer SonarQube avec Docker : Tutoriel

Lancer SonarQube via Docker permet de déployer rapidement un environnement d’analyse sans avoir à installer et configurer de nombreuses dépendances. Voici comment procéder.

Prérequis

Avant de commencer, assurez-vous d’avoir :

  • Docker installé sur votre machine. Vous pouvez télécharger Docker en suivant les instructions ici.
  • Un minimum de 2 Go de RAM pour Docker, car SonarQube nécessite une certaine puissance pour bien fonctionner.

Étape 1 : Récupérer l’image Docker de SonarQube

Commencez par télécharger l’image officielle de SonarQube depuis Docker Hub :

docker pull sonarqube

Cela télécharge la dernière version stable de SonarQube. Vous pouvez également spécifier une version particulière en ajoutant un tag, par exemple sonarqube:8.9-community pour la version 8.9.


Étape 2 : Lancer SonarQube avec Docker

Pour lancer SonarQube, exécutez la commande suivante :

docker run -d --name sonarqube -p 9000:9000 sonarqube

Explications :

  • -d : Exécute le conteneur en mode détaché.
  • –name sonarqube : Attribue le nom sonarqube au conteneur.
  • -p 9000:9000 : Associe le port local 9000 au port 9000 du conteneur, afin que SonarQube soit accessible via http://localhost:9000.

Étape 3 : Accéder à l’interface SonarQube

Une fois le conteneur en cours d’exécution, ouvrez votre navigateur et accédez à :

http://localhost:9000

Pour la première connexion, utilisez les identifiants suivants :

  • Nom d’utilisateur : admin
  • Mot de passe : admin

Vous devrez ensuite changer le mot de passe par mesure de sécurité.


Étape 4 : Configurer un projet dans SonarQube

Pour démarrer l’analyse d’un projet dans SonarQube :

  1. Allez dans Projects > Create Project.
  2. Entrez un nom pour votre projet.
  3. Créez un jeton d’authentification en cliquant sur Generate Token. Ce jeton sera nécessaire pour lier votre projet à SonarQube.

Étape 5 : Analyser un projet avec SonarQube Scanner

SonarQube Scanner est un outil en ligne de commande qui permet d’envoyer du code à analyser sur votre instance SonarQube.

  1. Téléchargez et installez SonarQube Scanner depuis le site de SonarQube.
  2. Une fois installé, placez-vous dans le dossier de votre projet et exécutez la commande suivante :
sonar-scanner \
  -Dsonar.projectKey=<nom_du_projet> \
  -Dsonar.sources=. \
  -Dsonar.host.url=http://localhost:9000 \
  -Dsonar.login=<JETON_AUTHENTIFICATION>

Assurez-vous de remplacer <nom_du_projet> par le nom du projet configuré dans SonarQube et <JETON_AUTHENTIFICATION> par le jeton généré.


Étape 6 : Visualiser les Résultats d’Analyse

Une fois l’analyse effectuée, retournez sur l’interface web de SonarQube. Vous y trouverez des rapports détaillés sur les aspects suivants :

  • Bugs et vulnérabilités : Détection des erreurs de code pouvant causer des problèmes ou des failles.
  • Endettement technique : Mesure de la complexité et des duplications de code, et recommandations d’amélioration.
  • Maintenabilité et couverture : Suggestions pour réduire la complexité et augmenter la lisibilité.

Commandes Docker Utiles

Voici quelques commandes supplémentaires pour gérer le conteneur SonarQube :

  • Arrêter SonarQube :bashCopier le codedocker stop sonarqube
  • Redémarrer SonarQube :bashCopier le codedocker start sonarqube
  • Supprimer le conteneur :bashCopier le codedocker rm -f sonarqube

SonarQube est un excellent outil pour renforcer la qualité du code et prévenir les problèmes potentiels avant qu’ils ne deviennent critiques. Le lancer via Docker permet de le déployer rapidement dans un environnement de développement ou de test sans installation complexe. SonarQube vous offre des analyses de code précises, une intégration avec vos pipelines CI/CD, et une amélioration continue de la qualité de votre code

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *