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. 感謝同學花費時間觀看,不足之處請在下方評論,共同學習共同進步,希望給您提供了方便?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章