DockerでSonarQube環境を手早く構築する

DockerでSonarQube環境を手早く構築する

SonarQubeの使い方含めて備忘録。

SonarQubeとは

コードの静的分析で自動レビューを行い、コード品質を継続的に検査するためのオープンソース
以下のような機能がある

  • バグが埋め込まれているコード(Bugs)
  • 重複コードの検出(Duplications)
  • 脆弱性のあるコードの検出(Vulnerabilities)
  • バグを誘発しそうなコードの検出(Code Smells)
  • カバレッジ計測(Coverage)

また、QualityGate(自分で設定できる品質が良い状態かの閾値)でコード品質の判定をしてくれる。

下はSonarQube上で確認できる静的分析結果の例

構築する

docker hubのsonarqubeを使う

docker run -p 9000:9000 --name sonarqube -d --restart always -it sonarqube:lts

docker psコマンドでStatus upになっていればOK

$ docker ps
CONTAINER ID   IMAGE            COMMAND           CREATED          STATUS        PORTS                     NAMES
21be52e54145   sonarqube:lts    "./bin/run.sh"    48 seconds ago   Up 46 days    0.0.0.0:9000->9000/tcp    sonarqube

http://localhost:9000でアクセスできればOK

初期パスワードはadmin/admin

ログインするとダッシュボード画面が表示される。
ここではまだプロジェクトが何も無いので空の状態。

QualityGatesの設定

ヘッダーのQuality Gatesを押すとQuality Gatesの設定画面が表示される

デフォルトでは「SonarWay」というQualityGatesが設定されており、内容は以下。

「〜on New Code」と書いてある通り、新しく追加されたコードに対してQualityGateの判定を行うようになっている。
もし常に全てのコードに対してQualityGateの判定を行いたい場合は新たなQualityGateをCreateする必要がある。

projectを登録する

SonarQube上でprojectを作成する方法もあるが、projectがすでにある場合はそのままSonarQubeに投げる形のほうが楽。

SonarQubeとprojectの連携方法(Spring Boot,gradle)

SonarQubeとprojectの連携方法(React + TypeScript)

SonarQubeで管理しているprojectのQualityGateの状態をAPIで取得する方法

SonarQubeカテゴリの最新記事