LoginSignup
10
9

More than 5 years have passed since last update.

solrをdockerで導入

Last updated at Posted at 2016-08-16

solrをdockerで導入

■前提

dockerとjava8は導入済みのubuntu16.04で。
ubuntuでdockerのインストールは

$ sudo apt-get install docker.io

solrはofficialのものを使います。
色々怖いので。。。
https://hub.docker.com/_/solr/

$ sudo docker pull solr

core用のローカルフォルダを作成

$ sudo mkdir -p /var/solr/cores
$ sudo chown 8983:8983 /var/solr/cores/

※solrコンテナのバージョンが古いとcoreの位置が/opt/solr/server/solrになっているかも。
その場合、下記設定では上手くいきません。最新のコンテナを取得し直しましょう(涙

$ sudo docker run --name solr -d -p 8983:8983 -v /var/solr/cores:/opt/solr/server/solr/mycores -t solr

■webの起動を確認する

http://127.0.0.1:8983/solr/#/

Screenshot from 2016-08-16 23-24-53.png

■sample coreを作ってみる

host側のshellで。

$ sudo docker exec -it solr /bin/bash

コンテナのshellで。
テスト用のcoreのtestを作成します。

$ solr create -c test
  • 実行結果
solr@2ce0037aae58:/opt/solr/server/solr/mycores$ solr create -c test

Copying configuration to new core instance directory:
/opt/solr/server/solr/test

Creating new core 'test' using command:
http://localhost:8983/solr/admin/cores?action=CREATE&name=test&instanceDir=test

{
  "responseHeader":{
    "status":0,
    "QTime":1286},
  "core":"test"}

coreを移動する

$ cd /opt/solr/server/solr
$ mv test mycores

Ctrl+P,Ctrl+Qで一旦コンテナを抜けて、solrコンテナを再起動

$ sudo docker restart solr

webの方でもcoreが作成されているのが確認できます。
Screenshot from 2016-08-16 23-57-12.png

ホスト側にもcoreができていることを確認

$ ll

drwxr-xr-x 3 8983 8983 4096  8月 16 23:52 ./
drwxr-xr-x 3 root root 4096  8月 16 23:30 ../
drwxr-xr-x 4 8983 8983 4096  8月 16 23:51 test/

ログフォルダもcoreと同じようにホスト側にボリュームマウントしてあげると良いと思います。

今のコンテナをストップして削除

$ sudo docker stop solr
$ sudo docker rm solr

ログ用フォルダを作ってコンテナ起動

$ sudo mkdir -p /opt/solr/log
$ sudo chown 8983:8983 /opt/solr/log
$ sudo docker run --name solr -d -p 8983:8983 -v /var/solr/cores:/opt/solr/server/solr/mycores -v /opt/solr/log:/opt/solr/server/logs -t solr

dockerコンテナで簡単にsolrを導入できて便利です。
また、coreをホスト側に持てるので気軽にコンテナを変えてsolrのバージョンを変えられます。
#互換性のテストとか簡単にできるね♪

coreに設定をしていってrestartをしてを繰り返すと環境の構築が早いですね。
chown 8983をし忘れるとファイルが読めなくてエラーが出ることがあります。
エラーがでたらまずオーナを確認するといいかも。

コンテナのsolrに変更をしたい場合

ログレベルの変更やキャッシュサイズの変更等でコンテナ内部のファイルを変更したい場合、solrユーザでは制限がある場合、以下のコマンドでrootでのログインができます。

sudo docker exec -u root -it solr /bin/bash

commitはお忘れなく。

10
9
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
10
9