Elasticsearch-7.15.1 Dockerfile
Elasticsearch-7.15.1 Dockerfile
--------------------------------------------------------------------------------------------------
touch Dockerfile
--------------------------------------------------------------------------------------------------
# Pull base image
FROM docker.io/centos:latest
MAINTAINER crabdave "calorie.david@gmail.com"
# Usage: USER [UID]
USER root
# Add usergroup
RUN groupadd es
# Add user and set group
RUN useradd -g es es
# Install gosu for sudo function support
ADD gosu-amd64 /home/es/
RUN mv /home/es/gosu-amd64 /usr/local/bin/gosu \
&& chmod +x /usr/local/bin/gosu \
&& gosu nobody true
# Config java environment
ADD jre-8u311-linux-x64.rpm /root/
RUN cd /root/ \
&&rpm -ivh jre-8u311-linux-x64.rpm
# Setting java config
RUN echo "export JAVA_HOME=/usr/java/jre1.8.0_311-amd64" >> /etc/profile
RUN echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> /etc/profile
# Config elasticsearch
ADD elasticsearch-7.15.1-linux-x86_64.tar.gz /home/es/
RUN cd /home/es/ \
&& chown -R es:es * \
&& cd elasticsearch-7.15.1/config/ \
&& echo "http.cors.enabled: true" >> elasticsearch.yml \
&& echo "http.cors.allow-origin: \"*\" " >> elasticsearch.yml \
&& sed -i 's/#network.host: 192.168.0.1/network.host: 0.0.0.0/' elasticsearch.yml \
&& sed -i 's/#cluster.initial_master_nodes: \[\"node-1\", \"node-2\"\]/cluster.initial_master_nodes: \[\"node-1\"\]/' elasticsearch.yml
# Expose ports.
EXPOSE 9200
EXPOSE 9300
# Configuration effective
RUN source /etc/profile \
&& echo $JAVA_HOME \
&& java -version
# Setting vm.max_map_count
RUN cp /etc/sysctl.conf /home/es/ \
&& echo "vm.max_map_count=262144" >> /home/es/sysctl.conf
# With "--privileged=true" when running container
# sudu es user to start elasticsearch server
CMD mv /home/es/sysctl.conf /etc/sysctl.conf\
&& /sbin/sysctl -p \
&& cat /etc/sysctl.conf \
&& gosu es ./home/es/elasticsearch-7.15.1/bin/elasticsearch
--------------------------------------------------------------------------------------------------
docker build -t elasticsearch .
--------------------------------------------------------------------------------------------------
docker run -d --restart=always --privileged=true -p9200:9200 -p9300:9300 elasticsearch:latest
docker ps
docker logs -f 64d5d132f3e1
--------------------------------------------------------------------------------------------------
curl http://localhost:9200
--------------------------------------------------------------------------------------------------