前言
繼上一篇文章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
- 校驗是否成功
- 感謝同學花費時間觀看,不足之處請在下方評論,共同學習共同進步,希望給您提供了方便?