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。
以上
参考サイト
Author And Source
この問題について(DockerでApache Solr 6系を作ってみる), 我々は、より多くの情報をここで見つけました https://qiita.com/reflet/items/7e1133d68976a1c7c83a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .