DockerでApache Solr 6系を作ってみる


概要

Apache Solrのコンテナは公式のものがありますが、
java:8コンテナをベースにして独自で作ってみたかったので試してみる。
※ あくまで学習用です(公式コンテナがあるので実際に使う場合はそちらを利用)。

ファイル構成

下記のようなファイル構成となります。

ファイル一覧
├ Dockerfile
└ solr-6.6.3.tgz

ApacheSolrのダウンロード

下記サイトからダウンロードします。
※ 今回は、「solr-6.6.3.tgz」をダウンロードしました

Dockerfile

コンテナを作成するための設定を作成します。

Dockerfile
FROM java:8

# system update
RUN apt-get -y update && apt-get -y upgrade

# locale
RUN apt-get -y install locales && \
    localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja
ENV LC_ALL ja_JP.UTF-8

# timezone (Asia/Tokyo)
ENV TZ JST-9

# etc
ENV TERM xterm

# tools
RUN apt-get -y install less vim

# apache solr
COPY solr-6.6.3.tgz /tmp/solr-6.6.3.tgz
RUN mkdir -p /usr/solr/ \
    && tar xzvf /tmp/solr-6.6.3.tgz -C /usr/solr/ \
    && rm /tmp/solr-6.6.3.tgz
ENV PATH="/usr/solr/solr-6.6.3/bin:$PATH"

WORKDIR /root
EXPOSE 8983
ENTRYPOINT /bin/sh -c "solr start -force && tail -f /dev/null"

コンテナ作成

下記コマンドでビルドします。

ターミナル
$ docker build -t reflet/solr6 .

コンテナ起動

下記コマンドでsolr4コンテナを起動(8006ポート)します。

ターミナル
$ docker run -p 8006:8983 -d --name solr6 reflet/solr6

状況確認

コンテナへ接続して、バージョンや起動状況を確認する。

ターミナル
$ docker exec -it solr6 bash
ターミナル(solrコンテナ)
$ java -version
openjdk version "1.8.0_111"
OpenJDK Runtime Environment (build 1.8.0_111-8u111-b14-2~bpo8+1-b14)
OpenJDK 64-Bit Server VM (build 25.111-b14, mixed mode)
ターミナル(solrコンテナ)
$ ps -aux | grep solr
root         5  0.0  0.1   4328   580 ?        S    11:02   0:00 /bin/sh -c /usr/solr/solr-6.6.3/bin/solr start -force && tail -f /dev/null

$ solr -version
6.6.3

管理画面

Apache Solrが起動していれば、下記のURLで確認できると思います。

# localhostの場合
http://localhost:8006/solr/

# vagrant(192.168.33.10)の場合
http://192.168.33.10:8006/solr/

ブラウザで上記URLへアクセスして管理画面が閲覧できればOK。

以上

参考サイト