Dockerでの使い方

【連載】

簡単導入! OSS全文検索サーバFess入門

【第29回】Dockerでの使い方

[2020/07/28 10:00]菅谷 信介 ブックマーク ブックマーク

ソフトウエアを本運用する際、Docker上で運用するケースも増えてきたと思います。FessもDockerで簡単に利用できるようにDockerイメージが配布されており、dockerコマンドを実行するだけでDocker上に簡単にFessを構築することができます。今回は、Docker上でのFessの利用方法について説明します。

Dockerとは

DockerはOSレベルの仮想化を利用してソフトウエアを「コンテナ」と呼ばれるパッケージで提供する製品群です。今回は、「docker」と「docker-compose」というコマンドを利用して説明するので、あらかじめ「Docker Desktop」をインストールしておいてください。

FessのDockerイメージは、「Docker Hub」で配布しています。インターネットに接続されている環境であれば、dockerコマンドの実行時などにDockerイメージを取得することができます。

事前設定

Fessは検索エンジンにElasticsearchを利用しているので、ElasticsearchがDockerコンテナとして実行できるようにする必要があります。それには、OS側で「vm.maxmapcount」の値を調整します。利用するOSによって設定方法が異なるので、それぞれの設定方法については「Set vm.max_map_count to at least 262144」を参照してください。

dockerコマンドでの起動

まずは、FessをDockerコンテナとして起動してみます。FessのDockerイメージは、「codelibs/fess:バージョン」で指定します。今回は、Fessの起動ログが確認できるようにするため、以下のコマンドで起動します。

$ docker run -it -p 8080:8080 codelibs/fess:13.8.0

起動完了後、「http://localhost:8080/」からFessにアクセスできます。

Fessのコンテナを停止させる場合は「docker stop CONTAINER」または「Ctrl」+「C」で停止してください。

docker-composeコマンドでの起動

FessをDockerコンテナとして本運用する場合、FessとElasticsearchのコンテナは分離していたほうが運用管理が楽になります。Fessでは、FessとElasticsearchのコンテナを別々に起動するDocker Compose用の環境も提供しています。

Docker Compose用の環境を取得して、docker-composeコマンドを実行して起動します。

$ git clone -b v13.8.0 https://github.com/codelibs/docker-fess.git
$ cd docker-fess/compose/
$ docker-compose -f docker-compose.yml -f docker-compose.standalone.yml up -d

起動完了後、「http://localhost:8080/」からFessにアクセスできます。

起動したコンテナの状態は「docker ps」で以下のように確認できます。

$ docker ps
CONTAINER ID        IMAGE                                   COMMAND                  CREATED              STATUS              PORTS                                        NAMES
570aa5d85d3c        codelibs/fess:13.8.1                    "/bin/sh -c /usr/sha..."   About a minute ago   Up About a minute   9200/tcp, 0.0.0.0:8080->8080/tcp, 9300/tcp   fess01
81d8a6b4d285        codelibs/fess-elasticsearch-oss:7.8.0   "/tini -- /usr/local..."   About a minute ago   Up About a minute   0.0.0.0:9200->9200/tcp, 9300/tcp             es01

Fessに関する設定は「docker-compose.yml」に、Elasticsearchの設定は「docker-compose.standalone.yml」に記述されています。例えば、ElasticsearchのJavaのヒープサイズを変更したい場合は、docker-compose.standalone.ymlの「ES_JAVA_OPTS=-Xms1g -Xmx1g」の箇所を修正します。

そのほか、インデックスの保存先を指定したいケースもあると思います。変更する場合は、docker-compose.standalone.ymlでボリュームの「esdata01」の箇所を変更して指定してください。

起動したコンテナを停止するには、以下のコマンドを実行します。

$ docker-compose -f docker-compose.yml -f docker-compose.standalone.yml down

* * *

今回はFessのDockerでの使い方を紹介しました。Docker Composeの構成を参考に構築すれば、本運用も可能なFess環境を構築することができます。また、最近ではAWSのECSでDocker Composeからのデプロイも容易になってきているので、Dockerを利用することで、クラウド上でのFessの構築や運用を容易に実現できるはずです。

著者紹介

菅谷 信介 (Shinsuke Sugaya)

Apache PredictionIOにて、コミッター兼PMCとして活動。また、自身でもCodeLibs Projectを立ち上げ、オープンソースの全文検索サーバFessなどの開発に従事。

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

一覧はこちら

連載目次

もっと知りたい!こちらもオススメ

【連載】Kubernetes入門 [15] CI/CDにおける潮流 - CIOpsからGitOpsへ

【連載】Kubernetes入門 [15] CI/CDにおける潮流 - CIOpsからGitOpsへ

今回は、CI/CDツールについてGitOpsやIaC(Infrastructure as Code)など、さまざまな側面から紹介することで、位置付けをより深く理解していただきます。なお、個別のCI/CD系のツールの使い方などの詳細については次回以降紹介します。

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で IT Search+ の人気記事をお届けします
注目の特集/連載
[解説動画] Googleアナリティクス分析&活用講座 - Webサイト改善の正しい考え方
[解説動画] 個人の業務効率化術 - 短時間集中はこうして作る
ミッションステートメント
教えてカナコさん! これならわかるAI入門
知りたい! カナコさん 皆で話そうAIのコト
対話システムをつくろう! Python超入門
Kubernetes入門
AWSで作るクラウドネイティブアプリケーションの基本
PowerShell Core入門
徹底研究! ハイブリッドクラウド
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

会員登録(無料)

ページの先頭に戻る