0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DockerでSonarQubeを使ってコードスキャンを実行

0
Posted at

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 にアクセスします。
ログインを行い、パスワードを変更します。

初期ユーザー名: admin
初期パスワード: admin
初回ログイン時にパスワード変更を求められます。

ヘッダーの[Projects]にアクセスし、[Add a project]をクリックします。

image.png

[Create a local project]をクリックします。

image.png

[Project display name]にプロジェクト名を入力し、[Next]ボタンをクリックします。

image.png

[Follows the instance's default]を選択し、[Create project]をクリックしたらプロジェクトが作成されます。

image.png

image.png

Overview画面の[Locally]をクリックし、[Token name]にトークン名(デフォルドでも可)を入力し、[Generate]をクリックします。

image.png

トークンが生成されたら[Continue]をクリックします。

トークンは一度しか表示されませんので、メモを取ってください。

image.png

3. Sonar-scannerのインストール

解析する言語を選択します。
今回はnode.jsを解析したいのでOtherを選択し、OSはLinuxを選択しました。

image.png

中央の[official documentation of the Scanner]のリンクから公式のSonar-scannerのドキュメントへ遷移します。

選択したOSを対応するバージョンのリンクをコピーします。
今回は8.0.1のLinux x64を使用します。

image.png

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コマンドをコピペして実行します。

image.png

この画面を消すと、Sonar-scannerコマンドが表示されなくなりますので、メモを取ってください。
メモを取り忘れた/なくした場合は、以下のコードを使ってください。

sonar-scanner \
  -Dsonar.projectKey={自分が設定したプロジェクトキー} \
  -Dsonar.sources=. \
  -Dsonar.host.url=http://localhost:9000 \
  -Dsonar.token={自分のプロジェクト解析用のトークン}

EXECUTION SUCCESSが出たら解析成功です。

6. 解析結果の確認

SonarQubeの画面に戻ると解析結果が表示されます。

image.png

Issuesで詳細を確認できます。

image.png

言語設定

AdministrationのMarketplaceにJapanese Packのプラグインがあります。
インストールしたら、UIが日本語に変わります。

image.png

日本語の画面はこのようになります。

image.png

参考する記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?