solrをdockerで導入 2017年版

  • 以前書いた「solrをdockerで導入から」時間が経過したので今のバージョン(6.6.0 stable?)で書き直してみます。

前提

  • dockerとdocker composeを使います。
  • OSはubuntu16.04です。(linuxなら多分違いは無い)

以下のコマンドでインストールできると思いますが、dockerのバージョンが古いと思うのでサイトからのインストールを推奨します。

$ sudo apt install docker.io
$ sudo apt install docker-compose

準備

  • coreを配置するローカルディレクトリを作成する。
$ mkdir /data
$ sudo chown 8983:8983 /data

Solrコンテナのダウンロード

  • DockerとDocker composeのインストールが出来たら

以下のコマンドでsolrのコンテナをダウンロード

$ sudo docker pull solr
junk@ubuntu-vm:~/solr$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
solr                latest              4bc40f825e4c        2 weeks ago         518MB

docker composeの用意

自分のhomeディレクトリに適当にディレクトリを作成し、以下のファイルを作成する。

docker-compose.yml
version: '2'
services:
  solr:
    image: solr
    ports:
     - "8983:8983"
    volumes:
     - /data:/opt/solr/server/solr/mycores
    restart: always

以下のコマンドでsolrコンテナを起動する。

$ cd /home/junk/solr
$ sudo docker-compose up -d

作成が成功すると以下の感じに。

junk@ubuntu-vm:~/solr$ sudo docker-compose up -d
Creating solr_solr_1

junk@ubuntu-vm:~/solr$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                    NAMES
c42fa13db748        solr                "docker-entrypoint..."   About a minute ago   Up About a minute   0.0.0.0:8983->8983/tcp   solr_solr_1

この段階で、ブラウザで以下のアドレスにアクセスすれば画面が表示できる。

http://127.0.0.1:8983/

Screenshot from 2017-07-08 01-19-25.png

coreの作成

  • Solrコンテナが起動したまま以下のコマンドを実行し、coreを作成する
$ sudo docker exec -it --user=solr solr_solr_1 solr-precreate test

solr_solr_1は、コンテナの名前
testは、coreの名前
デス。

実行すると以下のようになります。

junk@ubuntu-vm:~/solr$ sudo docker exec -it --user=solr solr_solr_1 solr-precreate test
Executing /opt/docker-solr/scripts/solr-precreate test
created test

Port 8983 is already being used by another process (pid: 1)
Please choose a different port using the -p option.
  • solrのコンテナを再起動する
$ sudo docker restart solr_solr_1
  • コンテナを再起動し、サイトを再表示すればcoreがロードされます。

Screenshot from 2017-07-08 01-29-18.png

  • ローカルのコアディレクトリーにtest coreが作成されていることを確認。
junk@ubuntu-vm:/data$ ll
合計 12
drwxr-xr-x  3 8983 8983 4096  7月  8 01:24 ./
drwxr-xr-x 25 root root 4096  7月  7 00:58 ../
drwxr-xr-x  4 8983 8983 4096  7月  8 01:28 test/

https://hub.docker.com/_/solr/
にも色々書いてあるけど、分かりやすくは無いのでまとめてみた。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.