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