forked from railwayapp-templates/elasticsearch
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
55 lines (43 loc) · 2.35 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# Start with a specific CentOS 7 image
FROM centos:7.9.2009
# Update the mirror list to use CentOS Vault
RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* && \
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
# Install Java and tini
RUN yum update -y && \
yum install -y java-1.8.0-openjdk-headless && \
yum install -y https://github.com/krallin/tini/releases/download/v0.19.0/tini_0.19.0.rpm && \
yum clean all && \
rm -rf /var/cache/yum
# Install Elasticsearch
RUN rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch && \
echo "[elasticsearch-7.x]" > /etc/yum.repos.d/elasticsearch.repo && \
echo "name=Elasticsearch repository for 7.x packages" >> /etc/yum.repos.d/elasticsearch.repo && \
echo "baseurl=https://artifacts.elastic.co/packages/7.x/yum" >> /etc/yum.repos.d/elasticsearch.repo && \
echo "gpgcheck=1" >> /etc/yum.repos.d/elasticsearch.repo && \
echo "gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch" >> /etc/yum.repos.d/elasticsearch.repo && \
echo "enabled=1" >> /etc/yum.repos.d/elasticsearch.repo && \
echo "autorefresh=1" >> /etc/yum.repos.d/elasticsearch.repo && \
echo "type=rpm-md" >> /etc/yum.repos.d/elasticsearch.repo
RUN yum install -y elasticsearch-7.10.1 && \
yum clean all && \
rm -rf /var/cache/yum
# Copy configuration files
COPY elasticsearch.yml /etc/elasticsearch/elasticsearch.yml
COPY roles.yml /etc/elasticsearch/roles.yml
# Copy and set permissions for the entrypoint script
COPY --chmod=755 entrypoint-new.sh /usr/local/bin/entrypoint-new.sh
# Create necessary directories and set permissions
RUN mkdir -p /usr/share/elasticsearch/logs /esdata && \
chown -R elasticsearch:elasticsearch /usr/share/elasticsearch /etc/elasticsearch /var/log/elasticsearch /var/lib/elasticsearch /esdata && \
chmod -R 775 /usr/share/elasticsearch /etc/elasticsearch /var/log/elasticsearch /var/lib/elasticsearch /esdata
# Add Elasticsearch bin directory to PATH for all users
RUN echo "export PATH=$PATH:/usr/share/elasticsearch/bin" >> /etc/profile
# Switch to the elasticsearch user
USER elasticsearch
# Set the entrypoint to use tini
ENTRYPOINT ["/usr/bin/tini", "--", "/usr/local/bin/entrypoint-new.sh"]
# Expose the default Elasticsearch ports
EXPOSE 9200 9300
# Set the default command
CMD ["elasticsearch"]