SonarQube avec Docker

Suite des conteneurs prêts à l’emploi. Ici je me suis lancé sur un outil que j’apprécie particulièrement. Je l’utilise souvent en début de mission pour me faire une idée, entre autres, de la qualité de code de l’application.

SonarQube permet, en effet, de mesurer la qualité du code source en continu. Il supporte plus de 20 langages, de quoi satisfaire tout le monde (ou presque). L’installation est très simple. Auparavant, on avait la possibilité d’installater SonarQube sur un serveur Tomcat mais depuis la version 4 tout a été simplifié. On a maintenant droit à un exécutable bat ou bash, selon le système d’exploitation sur lequel on évolue. La documentation est bien tenue.

SonarQube utilise une base de données afin de sauvegarder les différentes configurations ainsi que les métriques sur les différents projets. De base, une base donnée H2 est configurer par défaut, ce qui est pratique seulement si on a pour objectif d’en faire un usage uniquement personnel.
Il est aussi possible de configurer des bases MySQL, Oracle, PostgreSql ou SQL Server.

Sur ce conteneur contiendra donc:
– SonarQube version 4.5
– MySQL 5
– Serveur SSH
– Java 8

Pour lancer le conteneur:
docker run -d -p 9000:9000 -p 3306:3306 -p 4022:22 jahroots/sonarqube

Si vous souhaitez ensuite utiliser Maven pour analyser votre projet, il faut modifier votre settings.xml en ajoutant un profil:
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url>
jdbc:mysql://DOCKER_HOST:3306/sonar?useUnicode=true&amp;characterEncoding=utf8
</sonar.jdbc.url>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>sonar</sonar.jdbc.password>
<sonar.host.url>http://DOCKER_HOST:9000/</sonar.host.url >
</properties>
</profile>

Les sources sont disponibles sur mon Github.

Advertisements

4 réflexions sur “SonarQube avec Docker

  1. LaGuigne dit :

    Salut!

    Super conteneur que voilà. Malheureusement, je n’arrive pas à me connecter à la base mysql (et mon profil maven/sonar non plus du coup). En me connectant au conteneur en ssh, j’arrive sans probleme à utilisers les memes credentials pour m’y connecter.

    Y’a t-il un truc particulier pour faire fonctionner le tout?

    Merci!

    • Merci à toi, je me suis rendu compte que j’ai été un peu naïf. A la base, je me suis seulement appliqué à ce que tout fonctionne mais je n’ai pas testé l’analyse sur un projet. Maintenant c’est chose faite. Normalement ça devrait fonctionner :).

  2. LaurentZ dit :

    Merci pour la correction! Ça marche maintenant aussi avec le sonar-runner (plus d’erreur mysql ‘access denied’).
    Pour tester la connection après le lancement du conteneur (remplacer CONTAINER_NAME):

    docker run -it –link CONTAINER_NAME:mysql –rm mysql sh -c ‘exec mysql -h »$MYSQL_PORT_3306_TCP_ADDR » -P »$MYSQL_PORT_3306_TCP_PORT » -usonar -p’

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s