Help us understand the problem. What is going on with this article?

solrをdockerで導入 2017年版

More than 1 year has passed since last update.

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を配置するローカルディレクトリを作成する。
$ sudo 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を作成する
  • 下記「solr_solr_1」部の1つ目のsolrはdocker-compose.ymlのフォルダ名による。適時変更。
$ 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/
にも色々書いてあるけど、分かりやすくは無いのでまとめてみた。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away