Last active
June 3, 2024 14:30
-
-
Save kcleong/f86aed1d0e464d289c37285e5c57e573 to your computer and use it in GitHub Desktop.
Elasticsearch 6
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# https://stackoverflow.com/questions/72717414/how-to-run-elasticsearch-v6-on-m1-arm-inside-docker | |
# docker build -t es6 . | |
# docker run -p 9200:9200 es6 | |
FROM ubuntu:bionic-20220531 | |
# Must be root to install the packages | |
USER root | |
# Install required deps | |
RUN apt update | |
RUN apt -y install gnupg ca-certificates wget apt-transport-https coreutils java-common | |
# Import Elasticsearch GPG Key | |
RUN wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add - | |
# Add Elasticsearch 6.x APT repository | |
# setting CPU architecture to be amd64 explicity as in case this is being built from ARM (which it should) it would find the elasticsearch package (elasticsearch 6.x doesn't have ARM binary) | |
RUN echo "deb [arch=amd64] https://artifacts.elastic.co/packages/6.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-6.x.list | |
# update after elastic-search repo added | |
RUN apt-get update | |
# Install ARM Amazon JDK | |
RUN wget https://corretto.aws/downloads/latest/amazon-corretto-8-aarch64-linux-jdk.deb -O amazon-jdk.deb | |
RUN dpkg --skip-same-version -i amazon-jdk.deb | |
RUN rm amazon-jdk.deb | |
# Install Elasticsearch 6.x | |
RUN apt-get -y install elasticsearch | |
# the user was created when installed the elasticsearch | |
# Must not be root: | |
# org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root | |
USER elasticsearch | |
WORKDIR /usr/share/elasticsearch | |
# Append the custom conf | |
RUN echo "# ---------------------------------- CUSTOM -----------------------------------" >> /etc/elasticsearch/elasticsearch.yml | |
RUN echo "" >> /etc/elasticsearch/elasticsearch.yml | |
RUN echo "# Added because of the following error (TL;DR: X-Pack features are not supported in ARM):" >> /etc/elasticsearch/elasticsearch.yml | |
RUN echo "# > org.elasticsearch.bootstrap.StartupException:" >> /etc/elasticsearch/elasticsearch.yml | |
RUN echo "# > ElasticsearchException[X-Pack is not supported and Machine Learning is not available for [linux-aarch64];" >> /etc/elasticsearch/elasticsearch.yml | |
RUN echo "# > you can use the other X-Pack features (unsupported) by setting xpack.ml.enabled: false in elasticsearch.yml]" >> /etc/elasticsearch/elasticsearch.yml | |
RUN echo "xpack.ml.enabled: false" >> /etc/elasticsearch/elasticsearch.yml | |
RUN echo "" >> /etc/elasticsearch/elasticsearch.yml | |
RUN echo "# Added because we want to listen to requests coming from computers in the network" >> /etc/elasticsearch/elasticsearch.yml | |
RUN echo "network.host: 0.0.0.0" >> /etc/elasticsearch/elasticsearch.yml | |
RUN echo "discovery.type: single-node" >> /etc/elasticsearch/elasticsearch.yml | |
EXPOSE 9200 | |
ENTRYPOINT [ "./bin/elasticsearch" ] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment