【SonarQube】Docker Composeでサクッと試してみる

2022.10.02
2024.03.24
CI/CD
Docker ComposeSonarQube静的解析

はじめに

Docker ComposeでローカルにSonarQubeを構築して、サクッと試してみたいと思います。

SonarQubeとは

SonarQubeとは、コードの品質を保つための静的解析ツールです。

CIパイプラインに組み込むことで、継続的にコードの品質をチェック、改善することができるようになります。

Docker Composeで試す

Docker Composeを使ってローカルにSonarQubeを構築してみます。

docker-compose.yamlの作成

docker-compose.yamlは下記のリポジトリのものを利用します。

docker-sonarqube/example-compose-files/sq-with-h2 at master · SonarSource/docker-sonarqube

docker-sonarqube/example-compose-files/sq-with-h2 at master · SonarSource/docker-sonarqube

:whale: SonarQube in Docker. Contribute to SonarSource/docker-sonarqube development by creating an account on GitHub.

1version: "3"
2services:
3  sonarqube:
4    image: sonarqube:community
5    volumes:
6      - sonarqube_data:/opt/sonarqube/data
7      - sonarqube_extensions:/opt/sonarqube/extensions
8      - sonarqube_logs:/opt/sonarqube/logs
9    ports:
10      - "9000:9000"
11volumes:
12  sonarqube_data:
13  sonarqube_extensions:
14  sonarqube_logs:

SonarQubeの起動

Docker ComposeでSonarQubeを起動します。

1docker-compose up -d

localhost:9000にアクセスすると、SonarQubeにアクセスできます。

初期のログイン情報は下記の通りです。

  • User: admin
  • Password: admin

サンプルアプリで解析してみる

適当なアプリで、実際にSonarQubeで静的解析をしてみます。

今回は、Paketo Buildpacksのサンプルアプリからgradleアプリを利用します。

samples/java/gradle at main · paketo-buildpacks/samples

samples/java/gradle at main · paketo-buildpacks/samples

A collection of samples. Contribute to paketo-buildpacks/samples development by creating an account on GitHub.

プロジェクトの作成

まずはプロジェクトを作成します。今回はマニュアルで作成します。

リポジトリの設定

次に解析するリポジトリの選択をします。今回はローカルにあるリポジトリを解析したいのでLocallyを選択します。

トークンの作成をします。

サンプルアプリはGradleなのでGradleを選択すると、SonarQubeを実行するための設定と実行コマンドが表示されます。

SonarQubeによる静的解析の実行

表示された方法を参考にbuild.gradleに下記を追記します。

1plugins {
2  id "org.sonarqube" version "3.4.0.2513"
3}

表示されたコマンドをターミナルから実行して、SonarQubeによる静的解析を開始します。

1❯ ./gradlew sonarqube \
2  -Dsonar.projectKey=test \
3  -Dsonar.host.url=http://localhost:9000 \
4  -Dsonar.login={token}
5Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details
6
7> Task :sonarqube
8SCM provider autodetection failed. Please use "sonar.scm.provider" to define SCM of your project, or disable the SCM Sensor in the project settings.
9
10BUILD SUCCESSFUL in 1m 26s
114 actionable tasks: 4 executed

解析結果

解析が完了すると、GUIから結果を確認できます。

Issuesを確認すると、今回はassertionがないテストケースがあったということがわかりました。

参考

Support

\ この記事が役に立ったと思ったら、サポートお願いします! /

buy me a coffee
Share

Profile

author

Masa

都内のIT企業で働くエンジニア
自分が学んだことをブログでわかりやすく発信していきながらスキルアップを目指していきます!

buy me a coffee