需求
使用普通 Docker 方式启动可以通过目录映射将插件映射进容器内部,但是在 k8s 等集群中部署时,由于容器部署节点不固定,不方便通过映射方式加载插件,所以考虑直接将插件集成进镜像中,便于后续部署。
我这里使用两个插件 elasticsearch-analysis-ik-7.6.2.zip
和 ingest-attachment-7.6.2.zip
网上可以直接下载到,注意插件版本需要与 es 版本一致,否则会报错。
创建 Dockerfile
FROM elasticsearch:7.6.2
ENV ES_PLUGINS_PATH /usr/share/elasticsearch/plugins
ADD ./elasticsearch-analysis-ik-7.6.2.zip ./ingest-attachment-7.6.2.zip $ES_PLUGINS_PATH/
RUN cd $ES_PLUGINS_PATH && \
unzip elasticsearch-analysis-ik-7.6.2.zip -d ik/ && \
unzip ingest-attachment-7.6.2.zip -d ingest-attachment/ && \
rm elasticsearch-analysis-ik-7.6.2.zip ingest-attachment-7.6.2.zip
需要将插件 zip 包与 Dockerfile 文件放在同一目录下
执行构建命令
docker build -t elasticsearch-with-plugins:7.6.2 .
验证插件
启动容器,查看日志是否有插件加载信息。