LoginSignup
1
1

More than 3 years have passed since last update.

OpenShiftに乗っける前段としてDockerでFessを入れようと奮闘しています(笑)

Last updated at Posted at 2019-09-23

はじめに

全文検索に対応する必要性が出てきそうな予感があり
FessをOpenShiftに導入したいなと思っています。

その前段としてFessやElasticsearchがどんなものかDockerで作ってみようってのが話の始まり

OpenShiftにDockerHubからイメージを自由に落とせる環境ではないため、手順に従いインストールして構築する方法を模索していますが、今のところうまく行っていません。

ちなみにわたしJavaは判りません(笑)

環境

下準備(docker-compose)

Fessのインストールマニュアルだよりに色々進めていますが、なんともうまくインストールできていません。

とりあえず作成したdocker-compose.yamlとDockerfile達はこんな感じです。

まずはディレクトリ構成

├─ ubuntu/
   ├─ elasticsearch/
   │  │─ fess_plugins
   │  │─ docker-entrypoint.sh
   │  │─ Dockerfile
   │  │─ elasticsearch-7.3.2-amd64.deb
   │  └─ OpenJDK11U-jdk_x64_linux_hotspot_11.0.4_11.tar.gz
   ├─ fess/
   │  │─ Dockerfile
   │  │─ fess-13.3.1.deb
   │  └─ OpenJDK11U-jdk_x64_linux_hotspot_11.0.4_11.tar.gz
   ├─ docker-compose.yaml
  • fess_pluginsは、fessをインストールしたパッケージディレクトリの/usr/share/fess/es/pluginsをコピーしています。
  • docker-entorypoint.shは、elasticsearch:7.3.2からパチって来たものになります。
ubuntu/docker-compose.yaml
version: '3.7'

services:
  fess:
    container_name: fess_fess
    build: ./fess/
    image: fess:13.3.1
    restart: always
    ports:
      - 8080:8080
    environment:
      - ES_HTTP_URL=http://elasticsearch:9200
      - ES_TRANSPORT_URL=elasticsearch:9300
      - FESS_DICTIONARY_PATH=/etc/elasticsearch/
      - FESS_CONF_PATH=/etc/fess/
    links:
      - elasticsearch
    depends_on: 
      - elasticsearch

  elasticsearch:
    container_name: fess_elasticsearch
    build: ./elasticsearch/
    image: elasticsearch:7.3.2
    restart: always
    volumes:
      - esdata01:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
      - 9300:9300

volumes:
  esdata01:
    driver: local
ubuntu/elasticsearch/Dockerfile
FROM ubuntu:latest

ENV DEBIAN_FRONTEND=noninteractive \
    PATH=$PATH:/usr/local/java/bin \
    JAVA_HOME=/usr/local/java \
    ES_HOME=/usr/share/elasticsearch \
    ES_VERSION=7.3.2

# setup TIME_ZONE
RUN ln -sf /usr/share/zoneinfo/Japan /etc/localtime

# update system and install required software packages
RUN apt-get -y update
RUN apt-get -y install apt-transport-https
RUN apt-get -y autoremove && \
    apt-get -y clean

# install openjdk-12
COPY ./OpenJDK11U-jdk_x64_linux_hotspot_11.0.4_11.tar.gz /usr/local/src/
RUN cd /usr/local && \
    tar zxvf src/OpenJDK11U-jdk_x64_linux_hotspot_11.0.4_11.tar.gz && \
    rm -rf jdk-11.0.4+11/demo && \
    ln -s jdk-11.0.4+11 java

# set PATH and JAVA_HOME
RUN echo "export PATH=$PATH:/usr/local/java/bin" > /etc/profile.d/00-java.sh && \
    echo "export JAVA_HOME=/usr/local/java" >> /etc/profile.d/00-java.sh

# install elasticsearch
COPY ./elasticsearch-${ES_VERSION}-amd64.deb /usr/local/src/elasticsearch-${ES_VERSION}-amd64.deb
RUN dpkg -i /usr/local/src/elasticsearch-${ES_VERSION}-amd64.deb
COPY ./docker-entrypoint.sh /usr/share/elasticsearch/bin/docker-entrypoint.sh

# install elasticsearch plugins
COPY ./fess_plugins/analysis-extension /usr/share/elasticsearch/plugins/analysis-extension
COPY ./fess_plugins/analysis-fess /usr/share/elasticsearch/plugins/analysis-fess
COPY ./fess_plugins/configsync /usr/share/elasticsearch/plugins/configsync
COPY ./fess_plugins/dataformat /usr/share/elasticsearch/plugins/dataformat
COPY ./fess_plugins/minhash /usr/share/elasticsearch/plugins/minhash

EXPOSE 9200 9300

# elasticsearch settings
RUN sed -i -e "s/^#network\.host.*/network\.host: elasticsearch/g" /etc/elasticsearch/elasticsearch.yml && \
    sed -i -e "s/^#http\.port.*/http\.port: 9200/g" /etc/elasticsearch/elasticsearch.yml
RUN echo "configsync.config_path: /var/lib/elasticsearch/config" >> /etc/elasticsearch/elasticsearch.yml

USER elasticsearch
WORKDIR ${ES_HOME}

#RUN elasticsearch
ENV discovery.type=single-node
CMD ["./bin/docker-entrypoint.sh"]
ubuntu/fess/Dockerfile
FROM ubuntu:latest

ENV DEBIAN_FRONTEND=noninteractive \
    PATH=$PATH:/usr/local/java/bin \
    JAVA_HOME=/usr/local/java \
    FESS_HOME=/usr/share/fess \
    FESS_CONF_PATH=/etc/fess \
    FESS_CLASSPATH=${FESS_HOME}/lib \
    fess.log.path=/var/log/fess

# setup TIME_ZONE
RUN ln -sf /usr/share/zoneinfo/Japan /etc/localtime

# update system and install required software packages
RUN apt-get -y update
RUN apt-get -y autoremove && \
    apt-get -y clean

# install openjdk-12
COPY ./OpenJDK11U-jdk_x64_linux_hotspot_11.0.4_11.tar.gz /usr/local/src/
RUN cd /usr/local && \
    tar zxvf src/OpenJDK11U-jdk_x64_linux_hotspot_11.0.4_11.tar.gz && \
    rm -rf jdk-11.0.4+11/demo && \
    ln -s jdk-11.0.4+11 java

# set PATH and JAVA_HOME
RUN echo "export PATH=$PATH:/usr/local/java/bin" > /etc/profile.d/00-java.sh && \
    echo "export JAVA_HOME=/usr/local/java" >> /etc/profile.d/00-java.sh

# install Fess
COPY ./fess-13.3.1.deb /usr/local/src/fess-13.3.1.deb
RUN dpkg -i /usr/local/src/fess-13.3.1.deb 

# configure
RUN sed -i -e "s/localhost:9201/elasticsearch:9200/" ${FESS_CONF_PATH}/fess_config.properties && \
    sed -i -e "s/#tomcat.bindAddress=127\.0\.0\.1/tomcat.bindAddress=fess/g" ${FESS_CONF_PATH}/tomcat_config.properties && \
    sed -i -e "s/^#ES_HTTP_URL=http:\/\/localhost:9200/ES_HTTP_URL=http:\/\/elasticsearch:9200/g" ${FESS_HOME}/bin/fess.in.sh && \
    sed -i -e "s/^#FESS_DICTIONARY_PATH=\/var\/lib\/elasticsearch\/config\//FESS_DICTIONARY_PATH=\/var\/lib\/elasticsearch\/config\//g" ${FESS_HOME}/bin/fess.in.sh

EXPOSE 8080

RUN mkdir /usr/share/fess/logs && \
    chmod go+w /usr/share/fess/logs

WORKDIR ${FESS_HOME}
CMD [ "./bin/fess" ]
ubuntu/elasticsearch/docker-entorypoint.sh
#!/bin/bash
set -e

# Files created by Elasticsearch should always be group writable too
umask 0002

run_as_other_user_if_needed() {
  if [[ "$(id -u)" == "0" ]]; then
    # If running as root, drop to specified UID and run command
    exec chroot --userspec=1000 / "${@}"
  else
    # Either we are running in Openshift with random uid and are a member of the root group
    # or with a custom --user
    exec "${@}"
  fi
}

# Allow user specify custom CMD, maybe bin/elasticsearch itself
# for example to directly specify `-E` style parameters for elasticsearch on k8s
# or simply to run /bin/bash to check the image
if [[ "$1" != "eswrapper" ]]; then
  if [[ "$(id -u)" == "0" && $(basename "$1") == "elasticsearch" ]]; then
    # centos:7 chroot doesn't have the `--skip-chdir` option and
    # changes our CWD.
    # Rewrite CMD args to replace $1 with `elasticsearch` explicitly,
    # so that we are backwards compatible with the docs
    # from the previous Elasticsearch versions<6
    # and configuration option D:
    # https://www.elastic.co/guide/en/elasticsearch/reference/5.6/docker.html#_d_override_the_image_8217_s_default_ulink_url_https_docs_docker_com_engine_reference_run_cmd_default_command_or_options_cmd_ulink
    # Without this, user could specify `elasticsearch -E x.y=z` but
    # `bin/elasticsearch -E x.y=z` would not work.
    set -- "elasticsearch" "${@:2}"
    # Use chroot to switch to UID 1000
    exec chroot --userspec=1000 / "$@"
  else
    # User probably wants to run something else, like /bin/bash, with another uid forced (Openshift?)
    exec "$@"
  fi
fi

# Parse Docker env vars to customize Elasticsearch
#
# e.g. Setting the env var cluster.name=testcluster
#
# will cause Elasticsearch to be invoked with -Ecluster.name=testcluster
#
# see https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html#_setting_default_settings

declare -a es_opts

while IFS='=' read -r envvar_key envvar_value
do
  # Elasticsearch settings need to have at least two dot separated lowercase
  # words, e.g. `cluster.name`, except for `processors` which we handle
  # specially
  if [[ "$envvar_key" =~ ^[a-z0-9_]+\.[a-z0-9_]+ || "$envvar_key" == "processors" ]]; then
    if [[ ! -z $envvar_value ]]; then
      es_opt="-E${envvar_key}=${envvar_value}"
      es_opts+=("${es_opt}")
    fi
  fi
done < <(env)

# The virtual file /proc/self/cgroup should list the current cgroup
# membership. For each hierarchy, you can follow the cgroup path from
# this file to the cgroup filesystem (usually /sys/fs/cgroup/) and
# introspect the statistics for the cgroup for the given
# hierarchy. Alas, Docker breaks this by mounting the container
# statistics at the root while leaving the cgroup paths as the actual
# paths. Therefore, Elasticsearch provides a mechanism to override
# reading the cgroup path from /proc/self/cgroup and instead uses the
# cgroup path defined the JVM system property
# es.cgroups.hierarchy.override. Therefore, we set this value here so
# that cgroup statistics are available for the container this process
# will run in.
export ES_JAVA_OPTS="-Des.cgroups.hierarchy.override=/ $ES_JAVA_OPTS"

if [[ -f bin/elasticsearch-users ]]; then
  # Check for the ELASTIC_PASSWORD environment variable to set the
  # bootstrap password for Security.
  #
  # This is only required for the first node in a cluster with Security
  # enabled, but we have no way of knowing which node we are yet. We'll just
  # honor the variable if it's present.
  if [[ -n "$ELASTIC_PASSWORD" ]]; then
    [[ -f /usr/share/elasticsearch/config/elasticsearch.keystore ]] || (run_as_other_user_if_needed elasticsearch-keystore create)
    if ! (run_as_other_user_if_needed elasticsearch-keystore list | grep -q '^bootstrap.password$'); then
      (run_as_other_user_if_needed echo "$ELASTIC_PASSWORD" | elasticsearch-keystore add -x 'bootstrap.password')
    fi
  fi
fi

if [[ "$(id -u)" == "0" ]]; then
  # If requested and running as root, mutate the ownership of bind-mounts
  if [[ -n "$TAKE_FILE_OWNERSHIP" ]]; then
    chown -R 1000:0 /usr/share/elasticsearch/{data,logs}
  fi
fi

run_as_other_user_if_needed /usr/share/elasticsearch/bin/elasticsearch "${es_opts[@]}"
ubuntu/elasticsearch/fess_plugins/*/plugin-descriptor.properties
:
elasticsearch.version=7.3.2
java.version=1.11

困りごと#1

エラー内容:java.lang.NoClassDefFoundError: com/google/common/hash/HashFunction

  • elasticsearchにfessのプラグインをインストールする際にエラーが発生。よって依存するfessが動作しない。com/google/common/hash/HashFunctionがUnDefinedだって言われている。因みにfessのPluginsをインストール(COPY)しなければelasticsearchは起動する。
fess_elasticsearch | [2019-09-23T11:25:03,575][ERROR][o.e.b.ElasticsearchUncaughtExceptionHandler] [f5d6d263c256] fatal error in thread [elasticsearch[f5d6d263c256][masterService#updateTask][T#1]], exiting
fess_elasticsearch | java.lang.NoClassDefFoundError: com/google/common/hash/HashFunction
fess_elasticsearch |    at org.codelibs.minhash.MinHash.createHashFunctions(MinHash.java:107) ~[?:?]
fess_elasticsearch |    at org.codelibs.elasticsearch.minhash.index.analysis.MinHashTokenFilterFactory.<init>(MinHashTokenFilterFactory.java:26) ~[?:?]
fess_elasticsearch |    at org.elasticsearch.index.analysis.AnalysisRegistry.buildMapping(AnalysisRegistry.java:447) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.index.analysis.AnalysisRegistry.buildTokenFilterFactories(AnalysisRegistry.java:282) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.index.analysis.AnalysisRegistry.build(AnalysisRegistry.java:213) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.index.IndexService.<init>(IndexService.java:180) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.index.IndexModule.newIndexService(IndexModule.java:411) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.indices.IndicesService.createIndexService(IndicesService.java:563) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.indices.IndicesService.createIndex(IndicesService.java:512) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.cluster.metadata.MetaDataIndexTemplateService.validateAndAddTemplate(MetaDataIndexTemplateService.java:235) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.cluster.metadata.MetaDataIndexTemplateService.access$300(MetaDataIndexTemplateService.java:65)
~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.cluster.metadata.MetaDataIndexTemplateService$2.execute(MetaDataIndexTemplateService.java:176)
~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.cluster.ClusterStateUpdateTask.execute(ClusterStateUpdateTask.java:47) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.cluster.service.MasterService.executeTasks(MasterService.java:687) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.cluster.service.MasterService.calculateTaskOutputs(MasterService.java:310) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.cluster.service.MasterService.runTasks(MasterService.java:210) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.cluster.service.MasterService$Batcher.run(MasterService.java:142) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.cluster.service.TaskBatcher.runIfNotProcessed(TaskBatcher.java:150) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.cluster.service.TaskBatcher$BatchedTask.run(TaskBatcher.java:188) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:688) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:252) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:215) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
fess_elasticsearch |    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
fess_elasticsearch |    at java.lang.Thread.run(Thread.java:834) [?:?]
fess_elasticsearch | Caused by: java.lang.ClassNotFoundException: com.google.common.hash.HashFunction
fess_elasticsearch |    at java.net.URLClassLoader.findClass(URLClassLoader.java:471) ~[?:?]
fess_elasticsearch |    at java.lang.ClassLoader.loadClass(ClassLoader.java:588) ~[?:?]
fess_elasticsearch |    at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:899) ~[?:?]
fess_elasticsearch |    at java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[?:?]
fess_elasticsearch |    ... 25 more

エラー回避:java.lang.NoClassDefFoundError: com/google/common/hash/HashFunction

minhash.jarcom/google/common/hash/HashFunctionが無いと怒られているとのことなので入手します(笑)
https://github.com/google/guava/wiki/Release23 より Guavaのjarをダウンロードします。
http://search.maven.org/remotecontent?filepath=com/google/guava/guava/23.0/guava-23.0.jar

こいつをとりあえずminhash.jarのあるfess_plugins/minhashフォルダにぶち込みます。

困りごと#2

上記でminhashのエラーは出なくなりましたが次なる問題が発覚

エラー内容:java.lang.Exception: java.lang.NoClassDefFoundError: org/apache/commons/codec/binary/Base64

こんどはConfigSyncServiceorg.apache.commons.codec.binary.Base64が無いんやって…

fess_elasticsearch | [2019-09-23T12:31:02,223][INFO ][o.c.e.c.s.ConfigSyncService] [caa90b0e6f11] ConfigFileUpdater is started at 1m intervals.
fess_elasticsearch | [2019-09-23T12:31:02,632][ERROR][o.e.ExceptionsHelper     ] [caa90b0e6f11] fatal error
fess_elasticsearch |    at org.elasticsearch.ExceptionsHelper.lambda$maybeDieOnAnotherThread$4(ExceptionsHelper.java:300)
fess_elasticsearch |    at java.base/java.util.Optional.ifPresent(Optional.java:183)
fess_elasticsearch |    at org.elasticsearch.ExceptionsHelper.maybeDieOnAnotherThread(ExceptionsHelper.java:290)
fess_elasticsearch |    at org.elasticsearch.http.netty4.Netty4HttpRequestHandler.exceptionCaught(Netty4HttpRequestHandler.java:76)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:297)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.notifyHandlerException(AbstractChannelHandlerContext.java:831)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:376)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
fess_elasticsearch |    at org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.channelRead(Netty4HttpPipeliningHandler.java:58)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
fess_elasticsearch |    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
fess_elasticsearch |    at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
fess_elasticsearch |    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
fess_elasticsearch |    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
fess_elasticsearch |    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323)
fess_elasticsearch |    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
fess_elasticsearch |    at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:287)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
fess_elasticsearch |    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
fess_elasticsearch |    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930)
fess_elasticsearch |    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
fess_elasticsearch |    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:682)
fess_elasticsearch |    at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:582)
fess_elasticsearch |    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:536)
fess_elasticsearch |    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496)
fess_elasticsearch |    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:906)
fess_elasticsearch |    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
fess_elasticsearch |    at java.base/java.lang.Thread.run(Thread.java:834)
fess_elasticsearch | [2019-09-23T12:31:02,701][WARN ][o.e.h.AbstractHttpServerTransport] [caa90b0e6f11] caught exception while handling client http traffic, closing connection Netty4HttpChannel{localAddress=/172.22.0.3:9200, remoteAddress=/172.22.0.2:43508}
fess_elasticsearch | java.lang.Exception: java.lang.NoClassDefFoundError: org/apache/commons/codec/binary/Base64
fess_elasticsearch |    at org.elasticsearch.http.netty4.Netty4HttpRequestHandler.exceptionCaught(Netty4HttpRequestHandler.java:79) [transport-netty4-client-7.3.2.jar:7.3.2]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:297) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.notifyHandlerException(AbstractChannelHandlerContext.java:831) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:376) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.channelRead(Netty4HttpPipeliningHandler.java:58) [transport-netty4-client-7.3.2.jar:7.3.2]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) [netty-codec-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) [netty-codec-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) [netty-codec-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) [netty-codec-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323) [netty-codec-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297) [netty-codec-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:287) [netty-handler-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:682) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:582) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:536) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:906) [netty-common-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.36.Final.jar:4.1.36.Final]
fess_elasticsearch |    at java.lang.Thread.run(Thread.java:834) [?:?]
fess_elasticsearch | Caused by: java.lang.NoClassDefFoundError: org/apache/commons/codec/binary/Base64
fess_elasticsearch |    at org.codelibs.elasticsearch.configsync.service.ConfigSyncService.getId(ConfigSyncService.java:353) ~[?:?]
fess_elasticsearch |    at org.codelibs.elasticsearch.configsync.service.ConfigSyncService.lambda$store$13(ConfigSyncService.java:313) ~[?:?]
fess_elasticsearch |    at org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:62) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.codelibs.elasticsearch.configsync.service.ConfigSyncService.lambda$checkIfIndexExists$9(ConfigSyncService.java:261) ~[?:?]
fess_elasticsearch |    at org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:62) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.TransportAction$1.onResponse(TransportAction.java:68) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.TransportAction$1.onResponse(TransportAction.java:64) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:88) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.admin.indices.exists.indices.TransportIndicesExistsAction.masterOperation(TransportIndicesExistsAction.java:80) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.admin.indices.exists.indices.TransportIndicesExistsAction.masterOperation(TransportIndicesExistsAction.java:39) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.master.TransportMasterNodeAction.masterOperation(TransportMasterNodeAction.java:127) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction$1.doRun(TransportMasterNodeAction.java:200) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.common.util.concurrent.EsExecutors$DirectExecutorService.execute(EsExecutors.java:193) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction.doStart(TransportMasterNodeAction.java:197) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction.start(TransportMasterNodeAction.java:161) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.master.TransportMasterNodeAction.doExecute(TransportMasterNodeAction.java:138) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.master.TransportMasterNodeAction.doExecute(TransportMasterNodeAction.java:58) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:145) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.xpack.security.action.filter.SecurityActionFilter.apply(SecurityActionFilter.java:123) ~[?:?]
fess_elasticsearch |    at org.elasticsearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:143) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:121) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:64) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.client.node.NodeClient.executeLocally(NodeClient.java:83) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.client.node.NodeClient.doExecute(NodeClient.java:72) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:392) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.client.support.AbstractClient$IndicesAdmin.execute(AbstractClient.java:1212) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:70) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.codelibs.elasticsearch.configsync.service.ConfigSyncService.checkIfIndexExists(ConfigSyncService.java:256) ~[?:?]
fess_elasticsearch |    at org.codelibs.elasticsearch.configsync.service.ConfigSyncService.store(ConfigSyncService.java:311) ~[?:?]
fess_elasticsearch |    at org.codelibs.elasticsearch.configsync.rest.RestConfigSyncFileAction.lambda$prepareRequest$8(RestConfigSyncFileAction.java:102) ~[?:?]
fess_elasticsearch |    at org.elasticsearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:113) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.xpack.security.rest.SecurityRestFilter.handleRequest(SecurityRestFilter.java:69) ~[?:?]
fess_elasticsearch |    at org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:240) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.rest.RestController.tryAllHandlers(RestController.java:344) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:174) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.http.AbstractHttpServerTransport.dispatchRequest(AbstractHttpServerTransport.java:320) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.http.AbstractHttpServerTransport.handleIncomingRequest(AbstractHttpServerTransport.java:370) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.http.AbstractHttpServerTransport.incomingRequest(AbstractHttpServerTransport.java:299) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.http.netty4.Netty4HttpRequestHandler.channelRead0(Netty4HttpRequestHandler.java:66) ~[?:?]
fess_elasticsearch |    at org.elasticsearch.http.netty4.Netty4HttpRequestHandler.channelRead0(Netty4HttpRequestHandler.java:31) ~[?:?]
fess_elasticsearch |    at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) ~[?:?]
fess_elasticsearch |    ... 40 more
fess_elasticsearch | Caused by: java.lang.ClassNotFoundException: org.apache.commons.codec.binary.Base64
fess_elasticsearch |    at java.net.URLClassLoader.findClass(URLClassLoader.java:471) ~[?:?]
fess_elasticsearch |    at java.lang.ClassLoader.loadClass(ClassLoader.java:588) ~[?:?]
fess_elasticsearch |    at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:899) ~[?:?]
fess_elasticsearch |    at java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[?:?]
fess_elasticsearch |    at org.codelibs.elasticsearch.configsync.service.ConfigSyncService.getId(ConfigSyncService.java:353) ~[?:?]
fess_elasticsearch |    at org.codelibs.elasticsearch.configsync.service.ConfigSyncService.lambda$store$13(ConfigSyncService.java:313) ~[?:?]
fess_elasticsearch |    at org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:62) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.codelibs.elasticsearch.configsync.service.ConfigSyncService.lambda$checkIfIndexExists$9(ConfigSyncService.java:261) ~[?:?]
fess_elasticsearch |    at org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:62) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.TransportAction$1.onResponse(TransportAction.java:68) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.TransportAction$1.onResponse(TransportAction.java:64) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:88) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.admin.indices.exists.indices.TransportIndicesExistsAction.masterOperation(TransportIndicesExistsAction.java:80) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.admin.indices.exists.indices.TransportIndicesExistsAction.masterOperation(TransportIndicesExistsAction.java:39) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.master.TransportMasterNodeAction.masterOperation(TransportMasterNodeAction.java:127) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction$1.doRun(TransportMasterNodeAction.java:200) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.common.util.concurrent.EsExecutors$DirectExecutorService.execute(EsExecutors.java:193) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction.doStart(TransportMasterNodeAction.java:197) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction.start(TransportMasterNodeAction.java:161) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.master.TransportMasterNodeAction.doExecute(TransportMasterNodeAction.java:138) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.master.TransportMasterNodeAction.doExecute(TransportMasterNodeAction.java:58) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:145) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.xpack.security.action.filter.SecurityActionFilter.apply(SecurityActionFilter.java:123) ~[?:?]
fess_elasticsearch |    at org.elasticsearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:143) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:121) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:64) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.client.node.NodeClient.executeLocally(NodeClient.java:83) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.client.node.NodeClient.doExecute(NodeClient.java:72) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:392) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.client.support.AbstractClient$IndicesAdmin.execute(AbstractClient.java:1212) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:70) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.codelibs.elasticsearch.configsync.service.ConfigSyncService.checkIfIndexExists(ConfigSyncService.java:256) ~[?:?]
fess_elasticsearch |    at org.codelibs.elasticsearch.configsync.service.ConfigSyncService.store(ConfigSyncService.java:311) ~[?:?]
fess_elasticsearch |    at org.codelibs.elasticsearch.configsync.rest.RestConfigSyncFileAction.lambda$prepareRequest$8(RestConfigSyncFileAction.java:102) ~[?:?]
fess_elasticsearch |    at org.elasticsearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:113) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.xpack.security.rest.SecurityRestFilter.handleRequest(SecurityRestFilter.java:69) ~[?:?]
fess_elasticsearch |    at org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:240) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.rest.RestController.tryAllHandlers(RestController.java:344) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:174) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.http.AbstractHttpServerTransport.dispatchRequest(AbstractHttpServerTransport.java:320) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.http.AbstractHttpServerTransport.handleIncomingRequest(AbstractHttpServerTransport.java:370) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.http.AbstractHttpServerTransport.incomingRequest(AbstractHttpServerTransport.java:299) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.http.netty4.Netty4HttpRequestHandler.channelRead0(Netty4HttpRequestHandler.java:66) ~[?:?]
fess_elasticsearch |    at org.elasticsearch.http.netty4.Netty4HttpRequestHandler.channelRead0(Netty4HttpRequestHandler.java:31) ~[?:?]
fess_elasticsearch |    at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) ~[?:?]
fess_elasticsearch |    ... 40 more
fess_elasticsearch | [2019-09-23T12:31:02,684][ERROR][o.e.b.ElasticsearchUncaughtExceptionHandler] [caa90b0e6f11] fatal error in thread [Thread-3], exiting
fess_elasticsearch | java.lang.NoClassDefFoundError: org/apache/commons/codec/binary/Base64
fess_elasticsearch |    at org.codelibs.elasticsearch.configsync.service.ConfigSyncService.getId(ConfigSyncService.java:353) ~[?:?]
fess_elasticsearch |    at org.codelibs.elasticsearch.configsync.service.ConfigSyncService.lambda$store$13(ConfigSyncService.java:313) ~[?:?]
fess_elasticsearch |    at org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:62) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.codelibs.elasticsearch.configsync.service.ConfigSyncService.lambda$checkIfIndexExists$9(ConfigSyncService.java:261) ~[?:?]
fess_elasticsearch |    at org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:62) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.TransportAction$1.onResponse(TransportAction.java:68) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.TransportAction$1.onResponse(TransportAction.java:64) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:88) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.admin.indices.exists.indices.TransportIndicesExistsAction.masterOperation(TransportIndicesExistsAction.java:80) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.admin.indices.exists.indices.TransportIndicesExistsAction.masterOperation(TransportIndicesExistsAction.java:39) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.master.TransportMasterNodeAction.masterOperation(TransportMasterNodeAction.java:127) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction$1.doRun(TransportMasterNodeAction.java:200) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.common.util.concurrent.EsExecutors$DirectExecutorService.execute(EsExecutors.java:193) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction.doStart(TransportMasterNodeAction.java:197) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction.start(TransportMasterNodeAction.java:161) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.master.TransportMasterNodeAction.doExecute(TransportMasterNodeAction.java:138) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.master.TransportMasterNodeAction.doExecute(TransportMasterNodeAction.java:58) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:145) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.xpack.security.action.filter.SecurityActionFilter.apply(SecurityActionFilter.java:123) ~[?:?]
fess_elasticsearch |    at org.elasticsearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:143) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:121) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:64) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.client.node.NodeClient.executeLocally(NodeClient.java:83) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.client.node.NodeClient.doExecute(NodeClient.java:72) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:392) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.client.support.AbstractClient$IndicesAdmin.execute(AbstractClient.java:1212) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:70) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.codelibs.elasticsearch.configsync.service.ConfigSyncService.checkIfIndexExists(ConfigSyncService.java:256) ~[?:?]
fess_elasticsearch |    at org.codelibs.elasticsearch.configsync.service.ConfigSyncService.store(ConfigSyncService.java:311) ~[?:?]
fess_elasticsearch |    at org.codelibs.elasticsearch.configsync.rest.RestConfigSyncFileAction.lambda$prepareRequest$8(RestConfigSyncFileAction.java:102) ~[?:?]
fess_elasticsearch |    at org.elasticsearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:113) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.xpack.security.rest.SecurityRestFilter.handleRequest(SecurityRestFilter.java:69) ~[?:?]
fess_elasticsearch |    at org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:240) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.rest.RestController.tryAllHandlers(RestController.java:344) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:174) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.http.AbstractHttpServerTransport.dispatchRequest(AbstractHttpServerTransport.java:320) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.http.AbstractHttpServerTransport.handleIncomingRequest(AbstractHttpServerTransport.java:370) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.http.AbstractHttpServerTransport.incomingRequest(AbstractHttpServerTransport.java:299) ~[elasticsearch-7.3.2.jar:7.3.2]
fess_elasticsearch |    at org.elasticsearch.http.netty4.Netty4HttpRequestHandler.channelRead0(Netty4HttpRequestHandler.java:66) ~[?:?]
fess_elasticsearch |    at org.elasticsearch.http.netty4.Netty4HttpRequestHandler.channelRead0(Netty4HttpRequestHandler.java:31) ~[?:?]
fess_elasticsearch |    at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) ~[?:?]
fess_elasticsearch |    at org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.channelRead(Netty4HttpPipeliningHandler.java:58) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) ~[?:?]
fess_elasticsearch |    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) ~[?:?]
fess_elasticsearch |    at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) ~[?:?]
fess_elasticsearch |    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) ~[?:?]
fess_elasticsearch |    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) ~[?:?]
fess_elasticsearch |    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323) ~[?:?]
fess_elasticsearch |    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) ~[?:?]
fess_elasticsearch |    at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:287) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) ~[?:?]
fess_elasticsearch |    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) ~[?:?]
fess_elasticsearch |    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) ~[?:?]
fess_elasticsearch |    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930) ~[?:?]
fess_elasticsearch |    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) ~[?:?]
fess_elasticsearch |    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:682) ~[?:?]
fess_elasticsearch |    at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:582) ~[?:?]
fess_elasticsearch |    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:536) ~[?:?]
fess_elasticsearch |    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496) ~[?:?]
fess_elasticsearch |    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:906) ~[?:?]
fess_elasticsearch |    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[?:?]
fess_elasticsearch |    at java.lang.Thread.run(Thread.java:834) [?:?]
fess_elasticsearch | Caused by: java.lang.ClassNotFoundException: org.apache.commons.codec.binary.Base64
fess_elasticsearch |    at java.net.URLClassLoader.findClass(URLClassLoader.java:471) ~[?:?]
fess_elasticsearch |    at java.lang.ClassLoader.loadClass(ClassLoader.java:588) ~[?:?]
fess_elasticsearch |    at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:899) ~[?:?]
fess_elasticsearch |    at java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[?:?]
fess_elasticsearch |    ... 83 more

エラー回避:java.lang.Exception: java.lang.NoClassDefFoundError: org/apache/commons/codec/binary/Base64

これまた入手します。

Apache Commons Codec より commons-codec-1.13-bin.tar.gz をダウンロードします。
解凍して出来上がったcommons-codec-1.13.jarfess_plugins/configsyncへぶち込みます。

できました!

無題.png

2019.09.24追記

頂いたコメントについて

shinsuke_sugayaさんからご指摘頂いた通り、fessに付属のpluginsは公式のpluginsとは違いました。

どうしてもローカルインストールしたいのでURL調べてDLしてきました。

ローカルで解凍してみましたが悩んでいた依存問題はjarが含まれておりました。
が…インストールがうまく行きません。

:
# install elasticsearch plugins
WORKDIR ${ES_HOME}

COPY ./plugins/elasticsearch-analysis-extension-7.3.0.zip /tmp/elasticsearch/plugins/
COPY ./plugins/elasticsearch-analysis-fess-7.3.0.zip /tmp/elasticsearch/plugins/
COPY ./plugins/elasticsearch-configsync-7.3.0.zip /tmp/elasticsearch/plugins/
COPY ./plugins/elasticsearch-dataformat-7.3.0.zip /tmp/elasticsearch/plugins/
COPY ./plugins/elasticsearch-minhash-7.3.0.zip /tmp/elasticsearch/plugins/

RUN ./bin/elasticsearch-plugin install file:///tmp/elasticsearch/elasticsearch-analysis-extension-7.3.0.zip
RUN ./bin/elasticsearch-plugin install file:///tmp/elasticsearch/plugins/elasticsearch-analysis-fess-7.3.0.zip
RUN ./bin/elasticsearch-plugin install file:///tmp/elasticsearch/plugins/elasticsearch-configsync-7.3.0.zip
RUN ./bin/elasticsearch-plugin install file:///tmp/elasticsearch/plugins/elasticsearch-dataformat-7.3.0.zip
RUN ./bin/elasticsearch-plugin install file:///tmp/elasticsearch/plugins/elasticsearch-minhash-7.3.0.zip
:
Step 18/29 : RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install file:///tmp/elasticsearch/plugins/elasticsearch-analysis-extension-7.3.0.zip
 ---> Running in 63e4cc74e7e2
-> Downloading file:///tmp/elasticsearch/plugins/elasticsearch-analysis-extension-7.3.0.zip
[=================================================] 100%??
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@     WARNING: plugin requires additional permissions     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.lang.RuntimePermission accessDeclaredMembers
* java.lang.RuntimePermission getClassLoader
* java.lang.reflect.ReflectPermission suppressAccessChecks
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.

Exception in thread "main" java.lang.IllegalStateException: unable to read from standard input; is standard input open and a tty attached?
        at org.elasticsearch.cli.Terminal$SystemTerminal.readText(Terminal.java:173)
        at org.elasticsearch.plugins.PluginSecurity.prompt(PluginSecurity.java:74)
        at org.elasticsearch.plugins.PluginSecurity.confirmPolicyExceptions(PluginSecurity.java:67)
        at org.elasticsearch.plugins.InstallPluginCommand.installPlugin(InstallPluginCommand.java:811)
        at org.elasticsearch.plugins.InstallPluginCommand.install(InstallPluginCommand.java:785)
        at org.elasticsearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:231)
        at org.elasticsearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:216)
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124)
        at org.elasticsearch.cli.MultiCommand.execute(MultiCommand.java:77)
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124)
        at org.elasticsearch.cli.Command.main(Command.java:90)
        at org.elasticsearch.plugins.PluginCli.main(PluginCli.java:47)
ERROR: Service 'elasticsearch' failed to build: The command '/bin/sh -c /usr/share/elasticsearch/bin/elasticsearch-plugin install file:///tmp/elasticsearch/plugins/elasticsearch-analysis-extension-7.3.0.zip' returned a non-zero code: 1

でもfess_pluginsの時みたいにダイレクトにCopyするとなんだか起動しているっぽいです。
ちなみにフォルダ名は解凍して出来上がったplugin-descriptor.propertiesnameを使っています。
解凍ついでにelasticsearch.version=7.3.2に、java.version=1.81.11に変更しちゃってます。

:
# install elasticsearch plugins
WORKDIR ${ES_HOME}

COPY ./plugins/analysis-extension ./plugins/analysis-extension
COPY ./plugins/analysis-fess ./plugins/analysis-fess
COPY ./plugins/configsync ./plugins/configsync
COPY ./plugins/dataformat ./plugins/dataformat
COPY ./plugins/minhash ./plugins/minhash
:
:
fess_elasticsearch | [2019-09-25T06:13:42,405][INFO ][o.e.p.PluginsService     ] [14ead7802c88] loaded plugin [analysis-extension]
fess_elasticsearch | [2019-09-25T06:13:42,410][INFO ][o.e.p.PluginsService     ] [14ead7802c88] loaded plugin [analysis-fess]
fess_elasticsearch | [2019-09-25T06:13:42,411][INFO ][o.e.p.PluginsService     ] [14ead7802c88] loaded plugin [configsync]
fess_elasticsearch | [2019-09-25T06:13:42,412][INFO ][o.e.p.PluginsService     ] [14ead7802c88] loaded plugin [dataformat]
fess_elasticsearch | [2019-09-25T06:13:42,414][INFO ][o.e.p.PluginsService     ] [14ead7802c88] loaded plugin [minhash]:

今宵はタイムアップでございますm(_ _)m

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1