elasticsearch/example/images/elasticsearch/Dockerfile

50 lines
1.8 KiB
Docker

FROM danielberteaud/alpine:24.4-1 AS builder
ARG ES_VERSION=8.13.2
ADD https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-${ES_VERSION}-linux-x86_64.tar.gz /tmp
ADD https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-${ES_VERSION}-linux-x86_64.tar.gz.sha512 /tmp
RUN set -eux &&\
apk add tar &&\
cd /tmp &&\
sha512sum -c elasticsearch-${ES_VERSION}-linux-x86_64.tar.gz.sha512 &&\
tar xzf elasticsearch-${ES_VERSION}-linux-x86_64.tar.gz &&\
mv elasticsearch-${ES_VERSION} /opt/elasticsearch &&\
# Remove X-Pack ML as it's not used, and not working on Alpine \
rm -rf /opt/elasticsearch/modules/x-pack-ml/ &&\
# Remove the JDK, we have our own \
rm -rf /opt/elasticsearch/jdk &&\
sed -i -e 's/ES_DISTRIBUTION_TYPE=tar/ES_DISTRIBUTION_TYPE=docker/' /opt/elasticsearch/bin/elasticsearch-env &&\
mkdir -p /opt/elasticsearch/config/jvm.config.d &&\
mkdir -p /opt/elasticsearch/.aws/config &&\
chown -R 9200:9200 /opt/elasticsearch/config &&\
chown -R 9200:9200 /opt/elasticsearch/.aws
FROM danielberteaud/java:17.24.4-1
MAINTAINER Daniel Berteaud <dbd@ehtrace.com>
ENV PATH=/opt/elasticsearch/bin:$PATH \
ES_JAVA_HOME=/opt/java/openjdk \
ES_PATH_CONF=/opt/elasticsearch/config \
ES_TMPDIR=/tmp
COPY --from=builder /opt/elasticsearch/ /opt/elasticsearch/
RUN set -eux &&\
apk --no-cache update &&\
apk --no-cache add openssl bash jq &&\
addgroup -g 9200 elasticsearch &&\
adduser --system --ingroup elasticsearch --disabled-password --uid 9200 elasticsearch --home /opt/elasticsearch --no-create-home --shell /sbin/nologin &&\
mkdir /data &&\
chown -R elasticsearch:elasticsearch /data
COPY root/ /
RUN set -eux &&\
chown -R elasticsearch:elasticsearch /opt/elasticsearch/config
WORKDIR /opt/elasticsearch
USER elasticsearch
EXPOSE 9200 9300
CMD ["elasticsearch"]