Erstellen Sie ein Container-Image für Kibanas arm64 und registrieren Sie es in der GitHub-Container-Registrierung. Starten Sie Elastic Stack mit Docker Compose auf Raspberry Pi 4 (64 Bit).

Ich habe das Container-Image von Kibana für arm64 veröffentlicht. Bitte benutzen Sie es, wenn Sie möchten.

ghcr.io/moritalous/ghcr/kibana-arm64

Dockerfile für arm64

Die Release-Datei von Kibana enthält die gesamte ausführbare Binärdatei von Node.js für x64 und funktioniert nicht mit arm64. Ersetzen Sie daher die Ausführungsbinärdatei von Node.js (unter / usr / share / kibana / node) durch die von arm64.

Ändern Sie außerdem dumm-init in die arm64-Version.

Die Quelle ist die offizielle Docker-Datei, die auf GitHub veröffentlicht wurde.

#
# ** THIS IS AN AUTO-GENERATED FILE **
#

################################################################################
# Build stage 0
# Extract Kibana and make various file manipulations.
################################################################################
FROM centos:7 AS prep_files
# Add tar and gzip
RUN yum update -y && yum install -y tar gzip && yum clean all
RUN cd /opt && curl --retry 8 -s -L -O https://artifacts.elastic.co/downloads/kibana/kibana-7.9.1-linux-x86_64.tar.gz && cd -
RUN mkdir /usr/share/kibana
WORKDIR /usr/share/kibana
RUN tar --strip-components=1 -zxf /opt/kibana-7.9.1-linux-x86_64.tar.gz
+ 
+ RUN cd /opt && curl --retry 8 -s -L -O https://nodejs.org/dist/v10.22.0/node-+v10.22.0-linux-arm64.tar.gz && cd -
+ RUN rm -rf /usr/share/kibana/node
+ RUN mkdir /usr/share/kibana/node
+ RUN cd /usr/share/kibana/node && tar --strip-components=1 -zxf /opt/node-v10.22.0-linux-arm64.tar.gz && cd -

# Ensure that group permissions are the same as user permissions.
# This will help when relying on GID-0 to run Kibana, rather than UID-1000.
# OpenShift does this, for example.
# REF: https://docs.openshift.org/latest/creating_images/guidelines.html
RUN chmod -R g=u /usr/share/kibana
RUN find /usr/share/kibana -type d -exec chmod g+s {} \;

################################################################################
# Build stage 1
# Copy prepared files from the previous stage and complete the image.
################################################################################
FROM centos:7
EXPOSE 5601

# Add Reporting dependencies.
RUN yum update -y && yum install -y fontconfig freetype shadow-utils && yum clean all

# Add an init process, check the checksum to make sure it's a match
- RUN curl -L -o /usr/local/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.2/dumb-init_1.2.2_amd64
- RUN echo "37f2c1f0372a45554f1b89924fbb134fc24c3756efaedf11e07f599494e0eff9  /usr/local/bin/dumb-init" | sha256sum -c -
+ RUN curl -L -o /usr/local/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.2/dumb-init_1.2.2_arm64
+ RUN echo "45b1bbf56cc03edda81e4220535a025bfe3ed6e93562222b9be4471005b3eeb3  /usr/local/bin/dumb-init" | sha256sum -c -
RUN chmod +x /usr/local/bin/dumb-init


# Bring in Kibana from the initial stage.
COPY --from=prep_files --chown=1000:0 /usr/share/kibana /usr/share/kibana
WORKDIR /usr/share/kibana
RUN ln -s /usr/share/kibana /opt/kibana

ENV ELASTIC_CONTAINER true
ENV PATH=/usr/share/kibana/bin:$PATH

# Set some Kibana configuration defaults.
COPY --chown=1000:0 config/kibana.yml /usr/share/kibana/config/kibana.yml

# Add the launcher/wrapper script. It knows how to interpret environment
# variables and translate them to Kibana CLI options.
COPY --chown=1000:0 bin/kibana-docker /usr/local/bin/

# Ensure gid 0 write permissions for OpenShift.
RUN chmod g+ws /usr/share/kibana && find /usr/share/kibana -gid 0 -and -not -perm /g+w -exec chmod g+w {} \;

# Remove the suid bit everywhere to mitigate "Stack Clash"
RUN find / -xdev -perm -4000 -exec chmod u-s {} +

# Provide a non-root user to run the process.
RUN groupadd --gid 1000 kibana && useradd --uid 1000 --gid 1000 --home-dir /usr/share/kibana --no-create-home kibana
USER kibana

LABEL org.label-schema.schema-version="1.0" org.label-schema.vendor="Elastic" org.label-schema.name="kibana" org.label-schema.version="7.9.1" org.label-schema.url="https://www.elastic.co/products/kibana" org.label-schema.vcs-url="https://github.com/elastic/kibana" org.label-schema.license="Elastic License" org.label-schema.usage="https://www.elastic.co/guide/en/kibana/index.html" org.label-schema.build-date="2020-09-01T22:38:56.015Z" license="Elastic License"

ENTRYPOINT ["/usr/local/bin/dumb-init", "--"]

CMD ["/usr/local/bin/kibana-docker"]

Bauen

docker build -t moritalous/kibana-arm64:7.9.1 .

Bildbestätigung

$ docker images
REPOSITORY                                      TAG                 IMAGE ID            CREATED             SIZE
moritalous/kibana-arm64                         7.9.1               96c8b0365e7e        About an hour ago   1.29GB
$ 

Registrieren Sie sich bei GitHub Container Registry

Befolgen Sie das offizielle Verfahren.

Anmeldung

cat TOKEN.txt | docker login ghcr.io -u [USERNAME] --password-stdin

Etikett

docker tag 96c8b0365e7e ghcr.io/moritalous/ghcr/kibana-arm64:7.9.1

drücken

docker push ghcr.io/moritalous/ghcr/kibana-arm64

Docker Compose

https://www.elastic.co/guide/en/elastic-stack-get-started/current/get-started-docker.html をほぼそのまま利用します。違うのはKibanaのコンテナイメージがghcr.io/moritalous/ghcr/kibana-arm64:7.9.1となるだけです。

Vergessen Sie nicht die folgenden Einstellungen.

sysctl -w vm.max_map_count=262144

https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html

Recommended Posts

Erstellen Sie ein Container-Image für Kibanas arm64 und registrieren Sie es in der GitHub-Container-Registrierung. Starten Sie Elastic Stack mit Docker Compose auf Raspberry Pi 4 (64 Bit).
Erstellen Sie ein Docker-Image für redoc-cli und registrieren Sie es auf Docker Hub
Die Geschichte, wie ein Docker-Container mit GitHub-Aktionen in die GitHub-Paketregistrierung und den Docker-Hub verschoben wird
Erstellen Sie mit Raspberry Pi und Docker Compose im Handumdrehen ein NAS mit DLNA-Funktion
2. Erstellen Sie ein Docker-Image und registrieren Sie die Registrierung
Stellen Sie die Sensorinformationen von Raspberry Pi in Java grafisch dar und überprüfen Sie sie mit einem Webbrowser
Beginnen Sie mit der Installation von Docker auf EC2 und dem Ausführen von Yellowfin in einem Container
Installieren Sie Docker auf Raspberry Pi 4 und Raspberry Pi OS 64bit
Vielleicht funktioniert es! Erstellen Sie ein Bild mit Docker und teilen Sie es!
[Docker] Erstellen Sie eine Site mit Hugo und veröffentlichen Sie sie auf GitHub
Erste Schritte mit der Git Hub Container Registry anstelle von Docker Hub
Zusammenfassung der Verfahren zum Entwickeln in einem Docker-Container mit VS-Code
Minimaler Workflow zum Verschieben des Docker-Images in die Github-Container-Registrierung mit Github-Aktionen
Stellen Sie sich die Spring Boot-App mit dem Jib-Maven-Plugin vor und starten Sie sie mit Docker
Übertragen Sie das von Docker Hub verteilte Docker-Image in die Google Container-Registrierung und starten Sie die VM basierend auf diesem Image