Elasticsearch 6.0.0 の Docker イメージで X-Pack 不要なときのアレ(追記あり)
Elasticsearch 6.0.0 がリリースされていました。
Elastic 社の Docker レジストリにも 6.0.0 のイメージが来ていたのでさっそくお試し。
analysis-kuromoji
が使いたいのと X-Pack は不要なので、おもむろに下記のような Dockerfile
でビルド。
FROM docker.elastic.co/elasticsearch/elasticsearch:6.0.0 RUN elasticsearch-plugin install analysis-kuromoji RUN elasticsearch-plugin remove x-pack
Elasticsearch 5.6.x のイメージではこれで問題なかったのですが、 6.0.0 のイメージでは以下のようなエラーで Elasticsearch が起動しません。
[2017-11-15T10:41:35,496][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main] org.elasticsearch.bootstrap.StartupException: java.lang.IllegalArgumentException: unknown setting [xpack.license.self_generated.type] please check that any required plugins are installed, or check the breaking changes documentation for removed settings at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:134) ~[elasticsearch-6.0.0.jar:6.0.0] at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:121) ~[elasticsearch-6.0.0.jar:6.0.0] at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:69) ~[elasticsearch-6.0.0.jar:6.0.0] at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134) ~[elasticsearch-6.0.0.jar:6.0.0] at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-6.0.0.jar:6.0.0] at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-6.0.0.jar:6.0.0] at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:85) ~[elasticsearch-6.0.0.jar:6.0.0]
6.0.0 のイメージに含まれる elasticsearch.yml
に xpack.license.self_generated.type
という X-Pack の設定が入ったようです。
これを回避するには、 Dockerfile
に以下のような行を加えて、 X-Pack 関連の設定を含まない elasticsearch.yml
で上書きしてビルドしてしまうか...
COPY --chown=elasticsearch:elasticsearch elasticsearch.yml /usr/share/elasticsearch/config/
もしくは、 X-Pack はアンインストールせず、 docker run
時に -e "xpack.security.enabled=false"
のような感じで、 X-Pack の不要な機能をオフにするのが良さそう。設定で X-Pack の機能をオフにする方法で、 X-Pack の試用期間である30日経過した場合の挙動は謎(未検証)。
ここから追記
6からossってのが増えてるかと。https://t.co/bTs26iW9IN
— Jun Ohtani (@johtani) 2017年11月15日
Elastic の中の人からツッコミがありまして、 6.0.0 から X-Pack がインストールされていない oss
というフレーバのイメージが追加されたとのことでした。 docker.elastic.co/elasticsearch/elasticsearch-oss:6.0.0
という名前で使えるようです。 Docker レジストリのページには現時点では記載がないですが、(レジストリのページにも載ってました...)ドキュメントにしっかり書いてありましたね...
X-Pack 不要な場合は最初からこれを使えば良いですね。 Elastic 社最高!