SonarQubeをDockerで使って、プロジェクトのコードをスキャンする手順をメモします。
この記事ではSonarQube v26.2.0を使っています。
準備するもの
・Docker Engine
・スキャンするソースコード(今回はnode.js)
1. SonarQube Serverの起動
SonarQube用のdockerサーバーを立ち上げ、docker psコマンドでサーバーが起動したことを確認する。
docker run -d --name sonarqube -p 9000:9000 sonarqube:community
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c91c350b28ac sonarqube:community "/opt/sonarqube/dock…" 32 minutes ago Up 32 minutes 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp sonarqube
2. SonarQubeでプロジェクトの作成
ブラウザで http://localhost:9000 にアクセスします。
ログインを行い、パスワードを変更します。
ヘッダーの[Projects]にアクセスし、[Add a project]をクリックします。
[Create a local project]をクリックします。
[Project display name]にプロジェクト名を入力し、[Next]ボタンをクリックします。
[Follows the instance's default]を選択し、[Create project]をクリックしたらプロジェクトが作成されます。
Overview画面の[Locally]をクリックし、[Token name]にトークン名(デフォルドでも可)を入力し、[Generate]をクリックします。
トークンが生成されたら[Continue]をクリックします。
トークンは一度しか表示されませんので、メモを取ってください。
3. Sonar-scannerのインストール
解析する言語を選択します。
今回はnode.jsを解析したいのでOtherを選択し、OSはLinuxを選択しました。
中央の[official documentation of the Scanner]のリンクから公式のSonar-scannerのドキュメントへ遷移します。
選択したOSを対応するバージョンのリンクをコピーします。
今回は8.0.1のLinux x64を使用します。
SonarQubeのコンテナにログインします。
docker exec -it -u root sonarqube bash
コンテナに必要なライブラリをインストールします。
apk update
apk upgrade
apk add wget unzip vim git
※Ubuntuは以下のコマンドを使ってください。
apt-get update
apt-get upgrade -y
apt-get install -y wget unzip vim git
インストールが完了したら、Sonar-scannerのzipファイルをwgetでダウンロードします。
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-8.0.1.6346-linux-x64.zip
コピーしたリンクを使ってください
インストールしたzipファイルを展開します。
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-8.0.1.6346-linux-x64.zip
Sonar-scannerコマンドが使えるように.bashrcファイルにPATHを設定します。
vim ~/.bashrc
export PATH="$PATH:/opt/sonarqube/sonar-scanner-8.0.1.6346-linux-x64/bin"
バージョン注意
設定し終えたら、.bashrcファイルを再読込します。
source ~/.bashrc
4. コード解析の準備
SonarQubeコンテナの解析ディレクトリに、解析したいソースコードを置きます。
docker ps # コンテナIDを調べる
docker cp ./sourse.js <コンテナID>:/opt/sonarqube/sourse.js # フォルダでもOK
SonarQubeのコンテナにnode.jsをインストールします。
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
nvm install 14.17.0 # 使用したいnode.jsのバージョンを入れる
nvm use 14.17
5. コードの解析
解析するソースコードのあるディレクトリに移動し、SonarQubeの画面に表示されているSonar-scannerコマンドをコピペして実行します。
この画面を消すと、Sonar-scannerコマンドが表示されなくなりますので、メモを取ってください。
メモを取り忘れた/なくした場合は、以下のコードを使ってください。
sonar-scanner \
-Dsonar.projectKey={自分が設定したプロジェクトキー} \
-Dsonar.sources=. \
-Dsonar.host.url=http://localhost:9000 \
-Dsonar.token={自分のプロジェクト解析用のトークン}
EXECUTION SUCCESSが出たら解析成功です。
6. 解析結果の確認
SonarQubeの画面に戻ると解析結果が表示されます。
Issuesで詳細を確認できます。
言語設定
AdministrationのMarketplaceにJapanese Packのプラグインがあります。
インストールしたら、UIが日本語に変わります。
日本語の画面はこのようになります。
参考する記事













