静的解析をCI/CDへ組み込む前に、まずローカルで動かしてみたい方向けの入門です。Qiitaの記事をもとに、DockerでSonarQube Serverを起動し、サンプルコードをSonarScanner CLIで解析します。
今回のゴールと準備
ソースコードをスキャンし、SonarQubeの画面でバグやCode Smellを確認します。Docker DesktopまたはDocker Engineと、次のPythonファイルを用意してください。
| |
SonarQube Serverを起動
| |
ブラウザーで http://localhost:9000 を開き、初期ユーザー名とパスワード admin / admin でログインします。初回ログイン後、パスワードを変更します。

プロジェクト、Token、URLを準備
画面で [Create a local project] を選び、表示名 hello-world のプロジェクトを作成します。続いて My Account > Security でTokenを作成し、scanner-cli などの名前を付けます。生成されたTokenは画面を閉じる前にコピーしてください。




Docker Desktop(Windows/Mac)からホストへ接続するURLは http://host.docker.internal:9000 です。Linuxでは http://localhost:9000 またはコンテナーIPを使用します。
SonarScanner CLIでスキャン
main.py があるディレクトリで、Tokenを置き換えて実行します。
| |
--rm はスキャン後にScannerコンテナーを削除し、-v は現在のソースディレクトリをコンテナー内の /usr/src にマウントします。ログの最後に EXECUTION SUCCESS が出れば解析成功です。
結果を確認
SonarQubeの http://localhost:9000/dashboard?id=hello-world を再読み込みし、Issuesを開きます。未使用変数 x に対する指摘などが表示され、問題の場所や修正案を確認できます。


まとめ
Dockerを使えば、複雑な設定ファイルを作らずに最初の静的解析を試せます。CIへ組み込む場合も、基本的には同じScannerコマンドをCIジョブから実行します。