docker自定义elasticsearch镜像——集成中文分词器smartcn和x-pack插件

前言

继上一篇文章docker自定义elasticsearch镜像 之 带中文分词器smartcn插件的elasticsearch,现需要elasticsearch装有x-pack。

可能有的同学会问,把原有elasticsearch配置一下,通过挂载plugins文件目录方式不也能集成这俩个插件么?干嘛费劲巴拉得搞成镜像呢?

首先产生镜像的原因是什么?我的理解是 方便安装,方便统一,使 使用者一键式操作。

通过挂载plugins文件目录方式

PS:该命令必须在 elasticsearch.yml 所在文件夹下执行

  1. 编写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"
    

     

  2. 通过docker-compose启动elasticsearch
    docker-compose -f elasticsearch.yml up -d
  3. 查看进程并进入elasticsearch容器
    docker ps
    docker exec -t -i <CONTAINER ID> /bin/bash

  4. 装载smartcn和x-pack
    ​​bin/elasticsearch-plugin install analysis-smartcn
    
    bin/elasticsearch-plugin install x-pack
  5. 安装完毕后重新启动elasticsearch

          

下面继续说正题?

Docker构建含有smartcn和x-pack的elasticsearch镜像

  1. 编写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/
    

     

  2. 执行命令构建镜像
    docker build -t elasticsearch-with-smartcn-x-pack:5.6.13 .

    PS:注意命令最后面有个点(.) 不可或缺

  3. 运行镜像
    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

     

  4. 校验是否成功
  5. 感谢同学花费时间观看,不足之处请在下方评论,共同学习共同进步,希望给您提供了方便?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章