Sider Scan は、Jenkins などのCIツールと連携させて使用することを想定していますが、Docker が導入されている環境であれば、通常のパソコン上でコマンドラインアプリケーションとして実行可能です。Sider Scan を動作させるために、OS毎の具体的な事前準備は以下のとおりです:
Windows | WSL2 (Windows Subsystem for Linux 2) のインストールが必要です。 WSL2 上でLinux ディストリビューションを起動し、Docker をインストール下さい。 |
Mac | Docker Desktop for Mac をインストールして下さい。 |
Linux | Docker をインストール下さい。Docker が動けばディストリビューションは問いません。 |
Docker がインストールできたらもう準備は完了です!以下の手順に沿って、早速使ってみましょう。Sider Scan 本体は、Docker Image としてDocker コマンドで取得されます。別途インストールする必要はありません。
1. 解析対象ディレクトリを用意する
解析したいソースコードを含むディレクトリを用意します。任意のディレクトリに配置して下さい。
是非、ご自身のプロジェクトを分析していただきたいですが、もし、適当なソースコードがなければ、こちらのサンプルディレクトリをダウンロードしてお使い下さい。解析前にzipファイルの解凍をお願いします。このファイルは、オープンソースプロジェクトのApache Kafkaから抜粋されたものです。
以下の例では、/target ディレクトリに解析対象のルートディレクトリがあるものとします。
2. 設定ファイル(.siderscan.json) を作成する
解析対象のルートディレクトリ(この例では /target ディレクトリ) 直下に、以下に示すような設定ファイル .siderscan.json
を作成して配置して下さい。
{ "report": { "method": "file" }, "enableSiderScanTracing": { "userEmail": "yourname@example.com" } }
ここで6行目の、ダブルクォーテーションで囲まれたyourname@example.com
の文字列を、ご自身のメールアドレスに変更下さい。
3. 解析を実行する
いよいよ解析実行です。コンテナ内で以下のような docker コマンドを使用して解析開始します。このDocker コマンドでは、Sider Scan の最新版のイメージが自動で取得され、解析を行っています。解析が完了すると、結果ファイルが/target/scan_result
ディレクトリに出力されます。
docker run --rm -v "$(pwd):/target" -w /target sider/sider_scan_runner:latest sider run /target
4. 解析結果を閲覧する
前節で解析が正常に完了していれば、/target/scan_result に解析結果が保存されています。保存されているファイルの内容は以下のとおりです。
<日付> + <指摘ID>.json
: 指摘毎に分かれた解析結果を含むデータになります。テキスト形式です。<日付> + <指摘ID>.png
: 指摘部分のコードのスクリーンショットです。画像です。index.html
: 指摘のスクリーンショットをサムネイル表示するHTMLファイルです。
scan_result
を閲覧するためには、scan_result
をWeb サーバー上に置く必要があります。お手元に自由に使えるWeb サーバー環境がない場合は、例えば、Web Server for Chrome (https://chrome.google.com/webstore/detail/web-server-for-chrome/ofhbbkphhbklhfoeikjpcbhemlocgigb?hl=ja) などがお勧めです。通常ご使用のブラウザでWebサーバー上に置かれたscan_result
ディレクトリを開いて下さい。指摘がサムネイル表示されます。スクリーンショットをクリックすると、ソースコードの詳細ビューワーが開きます。

注意: ローカルにダウンロードしたscan_result フォルダ内の、index.html をそのままダブルクリックしてしまうと404エラーになります。Webサーバー上に置いて、URLからアクセスして閲覧下さい。
5. より高度な使い方
以上、Sider Scan をコマンドラインから使用する方法について説明しました。Sider Scan には、様々な運用方法・設定項目があります。詳細については以下の資料
を参照ください。