自己动手制作elasticsearch的ik分词器的Docker镜像
# 使用Elasticsearch 7.10.0作为基础镜像
FROM docker.elastic.co/elasticsearch/elasticsearch:7.10.0
# 设置工作目录
WORKDIR /tmp
# 安装构建依赖
RUN apt-get update && apt-get install -y \
build-essential \
git \
maven \
&& rm -rf /var/lib/apt/lists/*
# 克隆IK分词器源码并构建
RUN git clone https://github.com/medcl/elasticsearch-analysis-ik.git \
&& cd elasticsearch-analysis-ik \
&& mvn package \
&& cd target \
&& mv elasticsearch-analysis-ik-{version}.zip /plugins \
&& cd /plugins \
&& unzip elasticsearch-analysis-ik-{version}.zip \
&& rm elasticsearch-analysis-ik-{version}.zip \
&& cd /
# 删除git和maven以减小镜像大小
RUN apt-get remove --purge --auto-remove -y \
git maven -y \
&& apt-get clean \
&& rm -rf /usr/share/maven /usr/bin/mvn
# 设置Elasticsearch配置
COPY elasticsearch.yml /usr/share/elasticsearch/config/elasticsearch.yml
# 设置环境变量
ENV cluster.name=docker-cluster
ENV node.name=es-node1
ENV number_of_shards=5
ENV number_of_replicas=1
ENV discovery.seed_hosts=es-node1,es-node2
ENV cluster.initial_master_nodes=es-node1,es-node2
ENV bootstrap.memory_lock=true
ENV "ES_JAVA_OPTS=-Xms512m -Xmx512m"
# 暴露端口
EXPOSE 9200
# 启动Elasticsearch
CMD ["elasticsearch"]
这段代码示例修正了原始代码中的一些问题,并提供了一个更为合理的Dockerfile模板。代码中使用了更为合适的命令来替换原有的RUN bash等形式,减少了镜像层数,并且在构建过程中删除了不必要的依赖以减小镜像体积。同时,代码中也包含了必要的注释来解释每一步的作用。
评论已关闭