ソースコード検索システムであるOpenGrokをdockerというコンテナ仮想化を使って手軽に設置する方法をまとめています。
参考
dockerを使わない設置方法は「OpenGrokを設置する方法」にまとめています。
OpenGrokのdockerイメージを取得
docker hub に登録されている OpenGrok のイメージを pull します。
今回は https://hub.docker.com/r/scue/docker-opengrok/ を使います。
コマンド
$ sudo docker pull scue/docker-opengrok
参考
docker pull については、>>こちら<< を参照ください。
OpenGrok で検索するソースコードを準備
OpenGrok でインデックスをつけ、検索可能にしたいソースコードを準備します。
ここでは、以下のようなディレクトリ構成で説明を進めます。
ソースコードのディレクトリ | /home/user/src |
OpenGrok の作業ディレクトリ | /home/user/opengrok_data |
ポイント
ソースディレクトリの直下にあるディレクトリがプロジェクトとして認識されます。
OpenGrok で、各プロジェクトごとに検索することができるようになります。
/home/user/src/[project1]/・・・
/home/user/src/[project2]/・・・
docker を起動して indexer を動かす
それではさっそく docker pull したイメージを使って、OpenGrok を動かしてみます。
OpenGrok のイメージは、起動すると /src 配下のソースコードにインデックスをつけ始めます。
起動コマンド
$ sudo docker run \
--name opengrok \
--rm \
-d \
-v /home/user/src:/src \
-v /home/user/opengrok_data:/data \
-p 8888:8080 \
scue/docker-opengrok
オプション | 意味 |
--name opengrok | コンテナの名前を opengrok に設定 |
--rm | コンテナ終了時、自動的に削除 |
-d (--detach) | コンテナをバックグラウンドで実行し、コンテナ ID を表示 |
-v /home/user/src:/src -v /home/user/opengrok_data:/data |
コンテナを起動するHost側のファイルシステムをコンテナ内でマウント。パスは絶対パスで指定し、コロン「:」で繋ぐ |
-p 8888:8080 | TCPポートのバインドを設定。Host側の8888番をコンテナの8080にバインド |
OpenGrok にアクセス
コンテナを起動出来たら、「http://localhost:8888/source/」で OpenGrok にアクセスできます。
別のIPアドレスを持つサーバーに環境を構築した場合は、localhost 部分を変更してください。

プロジェクトが表示されるまで、少し待ちましょう。