Kengo's blog

Technical articles about original projects, JVM, Static Analysis and TypeScript.

dockerでSonarQubeのインストールを楽にやる

クラスメソッドさんのブログでSonarQubeの紹介がされています。そちらの記事では記事の半分ほどを割いてインストール方法を説明していますが、dockerを使えばより楽に行えますのでその方法を紹介します。

dev.classmethod.jp

検証用のSonarQubeを立ち上げる

以下のコマンドで、組み込みデータベースを使用したサーバが立ち上がります。ユーザ名admin、パスワードadminでログインできます。 このコマンドは英文公式ページからの引用です。

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

なおalpineを使ったイメージもあるのですが、2018年8月1日現在でClassNotFoundErrorが出るなど不安定なようです。7.1-slpineなどのバージョンではなく、7.1などのバージョンの利用を推奨します。

PostgreSQLを使ったSonarQubeを立ち上げる

組み込みデータベースでの運用は検証用にのみ推奨されていますので、本番運用はRDBMSの利用が必要です。 以下のページにSonarQubeとPostgreSQLを立ち上げるdocker-compose.ymlが紹介されていますので、これを保存したディレクトリでdocker-compose upすればSonarQubeとPostgreSQLが立ち上がります。

docker-sonarqube/recipes.md at master · SonarSource/docker-sonarqube · GitHub

プラグインのインストールを自動化する

$SONARQUBE_HOME/extensions/pluginsディレクトリにプラグインの.jarファイルを保存することで、プラグインをインストールし有効化できます。 例えばSonarQube 6.7.4 LTSに sonar-findbugsとそれが依存しているSonarJavaをインストールするDockerfileは以下のようになります:

FROM sonarqube:7.1

RUN wget -P $SONARQUBE_HOME/extensions/plugins/ --no-verbose https://github.com/spotbugs/sonar-findbugs/releases/download/3.7.0/sonar-findbugs-plugin-3.7.0.jar && \
    wget -P $SONARQUBE_HOME/extensions/plugins/ --no-verbose https://sonarsource.bintray.com/Distribution/sonar-java-plugin/sonar-java-plugin-5.6.0.15032.jar