前言
继上一篇文章docker自定义elasticsearch镜像 之 带中文分词器smartcn插件的elasticsearch,现需要elasticsearch装有x-pack。
可能有的同学会问,把原有elasticsearch配置一下,通过挂载plugins文件目录方式不也能集成这俩个插件么?干嘛费劲巴拉得搞成镜像呢?
首先产生镜像的原因是什么?我的理解是 方便安装,方便统一,使 使用者一键式操作。
通过挂载plugins文件目录方式
PS:该命令必须在 elasticsearch.yml 所在文件夹下执行
- 编写docker-compose文件elasticsearch.yml
version: '2' services: hdback-elasticsearch: image: elasticsearch:5.6.13 volumes: - ~/volumes/HDBack/elasticsearch/data/:/usr/share/elasticsearch/data/ - ~/volumes/HDBack/elasticsearch/logs/:/usr/share/elasticsearch/logs/ - ~/volumes/HDBack/elasticsearch/plugins/:/usr/share/elasticsearch/plugins/ ports: - 9200:9200 - 9300:9300 command: -Enetwork.host=0.0.0.0 -Ediscovery.type=single-node environment: - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
- 通过docker-compose启动elasticsearch
docker-compose -f elasticsearch.yml up -d
- 查看进程并进入elasticsearch容器
docker ps
docker exec -t -i <CONTAINER ID> /bin/bash
- 装载smartcn和x-pack
bin/elasticsearch-plugin install analysis-smartcn bin/elasticsearch-plugin install x-pack
- 安装完毕后重新启动elasticsearch
下面继续说正题?
Docker构建含有smartcn和x-pack的elasticsearch镜像
- 编写DockerFile文件
#Docker image of elasticsearch with smartcn and x-pack tokenizer # VERSION 5.6.13 # Author: SenWang #基础镜像使用elasticsearch:5.6.13 FROM elasticsearch:5.6.13 #作者 MAINTAINER SenWang<[email protected]> #es插件目录 ENV ES_PLUGINS_PATH /usr/share/elasticsearch/plugins #定义压缩包存放目录 ENV SMARTCN_SRC_COMPILE_PATH /opt/smartcn_build #创建压缩包存放目录 RUN mkdir $SMARTCN_SRC_COMPILE_PATH && \ #进入压缩包存放目录 cd $SMARTCN_SRC_COMPILE_PATH && \ #下载源码包 wget https://artifacts.elastic.co/downloads/elasticsearch-plugins/analysis-smartcn/analysis-smartcn-5.6.13.zip && \ #解压源码包 unzip analysis-smartcn-5.6.13 && \ #构建成功后,将文件移动到插件目录 mv elasticsearch analysis-smartcn && \ mv analysis-smartcn $ES_PLUGINS_PATH/ && \ #x-pack wget https://artifacts.elastic.co/downloads/elasticsearch-plugins/x-pack/x-pack-5.6.13.zip && \ unzip x-pack-5.6.13.zip && \ mv elasticsearch x-pack && \ mv x-pack $ES_PLUGINS_PATH/
- 执行命令构建镜像
docker build -t elasticsearch-with-smartcn-x-pack:5.6.13 .
PS:注意命令最后面有个点(.) 不可或缺
- 运行镜像
version: '2' services: hdback-elasticsearch: image: elasticsearch-with-smartcn-x-pack:5.6.13 volumes: - ~/volumes/test/elasticsearch/:/usr/share/elasticsearch/data/ ports: - 9200:9200 - 9300:9300
以上为docker-compose文件内容,运行下方命令启动刚刚构建好的镜像
docker-compose -f elasticsearch-analysis-smartcn.yml up
- 校验是否成功
- 感谢同学花费时间观看,不足之处请在下方评论,共同学习共同进步,希望给您提供了方便?