Grafana: Docker: ARM-Images funktionieren seit Version 6.4.x nicht mehr

Erstellt am 2. Okt. 2019  ·  39Kommentare  ·  Quelle: grafana/grafana

Was ist passiert :
Grafana 6.4.X ARM in Docker funktioniert nicht mit Raspbian Buster.
Fehlermeldung beim Versuch, den Container auszuführen:
/run.sh: Zeile 80: / usr / share / grafana / bin / grafana-server: Keine solche Datei oder kein solches Verzeichnis

Was Sie erwartet hatten :
Offensichtlich: Grafana läuft fehlerfrei.

Wie man es reproduziert (so minimal und präzise wie möglich) :
Docker laufen grafana / grafana

Was müssen wir noch wissen? ::
Der Fehler wird durch eine lib-c-Nichtübereinstimmung verursacht: Grafana wird mit ld-linux-armhf.so erstellt, aber das alpine Basisbild enthält nur ld-musl-armv7.so.

Umwelt :

  • Grafana-Version: 6.4.X.
  • Datenquellentyp und -version: InfluxDB
  • OS Grafana ist installiert auf: Raspbian Buster mit Docker
  • Benutzer Betriebssystem & Browser: Windows / Firefox
  • Grafana-Plugins: Keine
  • Andere: Keine
aredocker typbug

Hilfreichster Kommentar

Vielen Dank an alle. Wir haben dies zum Master zusammengeführt, aber beschlossen, dieses Update in Grafana v6.5.0 aufzunehmen, das in ein paar Wochen veröffentlicht werden soll. Bis dahin können Sie nächtliche Builds verwenden, wenn Sie Grafana v6.5-vor ARM-kompatible Grafana-Docker-Images mithilfe des Tags grafana/grafana:master ausführen möchten.

Alle 39 Kommentare

Vielen Dank, dass Sie dieses @ theWaldschrat gemeldet haben. Wir werden es weiter untersuchen

@theWaldschrat welches Gerät benutzt du? Ist das eine 32- oder 64-Bit-Architektur (armv6m armv7, armv8 usw.)?

Vielleicht müssen wir https://pkgs.alpinelinux.org/package/edge/main/armhf/libc6-compat in das Grafana-Docker-Image aufnehmen?

apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/main libc6-compat

@theWaldschrat können Sie bestätigen, dass oben das Problem löst? Es ist schwieriger für uns, dies ohne Zugriff auf ein tatsächliches ARM-Gerät zu überprüfen. Ein Docker-basiertes Armbild ist möglicherweise möglich, aber wir freuen uns, wenn Sie uns hier weiterhelfen können. Vielen Dank

Das Gerät ist ein Raspberry Pi 4B. Technisch gesehen ist es ein ARM64v8, aber Raspbian führt standardmäßig einen 32-Bit-Kernel und ein Userland aus, also ARM32v7.

uname -a
Host-Betriebssystem:
Linux raspberrypi 4.19.66-v7l+ #1253 SMP Thu Aug 15 12:02:08 BST 2019 armv7l GNU/Linux
Grafana 6.3.6 Bild:
Linux 97f0bb9a456d 4.19.66-v7l+ #1253 SMP Thu Aug 15 12:02:08 BST 2019 armv7l armv7l armv7l GNU/Linux
Grafana 6.4.X (aktuelles) Bild:
Linux 84a01cb75816 4.19.66-v7l+ #1253 SMP Thu Aug 15 12:02:08 BST 2019 armv7l Linux

Ich habe noch nicht viele Docker-Images erstellt, daher kann ich den obigen Befehl in einem neuen Image nicht ausprobieren, zumindest nicht schnell. Aber was ich getan habe: Führen Sie ein grafana: letzter Container mit Entry Point Bash und User Root aus:
docker run -it -p 3001:3000 --entrypoint="bash" --user=root grafana/grafana
Hier ist das Ergebnis:

  • Das manuelle Ausführen von /run.sh gibt dieselbe Fehlermeldung aus, die bestätigt wird.
  • Führen Sie den obigen Befehl aus: Kein Fehler.
  • Führen Sie erneut /run.sh aus: Neue Fehlermeldungen:
Error relocating /usr/share/grafana/bin/grafana-server: __memset_chk: symbol not found
Error relocating /usr/share/grafana/bin/grafana-server: __memcpy_chk: symbol not found
Error relocating /usr/share/grafana/bin/grafana-server: __vfprintf_chk: symbol not found
Error relocating /usr/share/grafana/bin/grafana-server: __fprintf_chk: symbol not found
  • Das Ausführen von ldd /usr/share/grafana/bin/grafana-server beschwert sich nicht mehr über fehlende Bibliotheken, liefert jedoch die gleichen Ergebnisse wie oben.

Ich bin kein Experte, aber ich denke, die lib-c sind immer noch nicht kompatibel.

@ theWaldschrat danke sehr hilfreich.

Um einige zusätzliche Dinge zu überprüfen, können Sie diese speziell ausprobieren, um zu überprüfen, ob Sie das gleiche Problem haben:
docker run -it -p 3001:3000 --entrypoint="bash" --user=root grafana/grafana-arm32v7-linux:6.4.1

docker run -it -p 3001:3000 --entrypoint="bash" --user=root grafana/grafana-arm32v7-linux:6.4.0-beta1

Können Sie zur Sicherheit auch versuchen, grafana-server auszuführen und zu starten:
docker run -it -p 3001:3000 --entrypoint="bash" --user=root grafana/grafana-arm64v8-linux:6.4.1

Die ersten beiden machen alle dasselbe wie zuvor beschrieben.
Das Ausführen von /run.sh oder direkt /usr/share/grafana/bin/grafana-server macht keinen Unterschied.

Der dritte beginnt nicht einmal mit einer Fehlanpassung des Bogens:
standard_init_linux.go:211: exec user process caused "exec format error"

Ich habe das gleiche Problem und musste ein Downgrade auf die Version 6.3.6 . Es scheint also, dass alle alpinen 6.4.x Bilder für ARMv7 fehlerhaft sind.

Vielen Dank. Können Sie nach Eingabe von bash versuchen, das musl-dev-Paket mit apk add zu installieren?

musl-dev installieren, hat aber keinen Einfluss auf das Problem, mit oder ohne libc6-compat .

Durch die Installation der glibc-Apks von https://github.com/armhf-docker-library/alpine-pkg-glibc/releases kann grafana-server gestartet werden. Wenn ich das Problem richtig verstehe, ist es jedoch besser, die Binärdateien statisch mit musl zu verknüpfen.

Es ist die Idee von Alpine, eine statische Verknüpfung mit Muss anstelle einer dynamischen Glibc-Verknüpfung herzustellen. Es ist schneller, kleiner, stabiler und möglicherweise sicherer. Zumindest sagen sie das so.
Soweit ich sehen kann, wird Grafana außerhalb des Zielbilds erstellt, das mit glibc verknüpft ist. Daher ist es wahrscheinlich die beste Idee, entweder glibc wie oben zu installieren oder ein anderes Basis-Image zu verwenden, das bereits glibc enthält.

Angesichts der Tatsache, dass diese Änderung das Docker-Image für ARM-Geräte effektiv zerstört hat, hatte ich etwas Besseres erwartet als ein Tag mit "Bedarfsermittlung".

Seufzer! Der Fluch der "agilen Entwicklung", denke ich.

Ich kann den Fehler in OS X reproduzieren, obwohl er etwas anders aussieht als bei Ihnen:

$ docker run --platform arm grafana/grafana
/lib/ld-linux-armhf.so.3: No such file or directory

Ich werde sehen, ob ich es reparieren kann.

Ich könnte einen Hinweis auf die Grundursache für dieses Problem haben, in der Hoffnung, dass ich es bis morgen beheben kann.

Arbeiten Sie daran, dies zu lösen, indem Sie zusätzlich zu den glibc-Binärdateien auch musl-Binärdateien erstellen.

Bin auch darauf gestoßen. Mein System ist aarch64 (RockPro64) und ich erhalte den gleichen Fehler:

/run.sh: line 80: /usr/share/grafana/bin/grafana-server: No such file or directory

Basierend auf der Arbeit in # 19798 haben wir ein Tag mit dem Namen dev-musl an Grafana Docker Hub-Repositories gesendet. Wir konnten nur die Arm- und Arm64-Docker-Bilder mithilfe der Emulation testen. Wir bitten daher jeden, beim Testen der Arm- und Arm64-Docker-Bilder zu helfen, um zu überprüfen, ob sie wie erwartet funktionieren. Es wurde kein Manifest an grafana / grafana gesendet. Wenn Sie also arm oder arm64 ausprobieren möchten, müssen Sie das richtige Repository manuell angeben (siehe unten).

Linux / AMD64 :
docker run <args> grafana/grafana:dev-musl

Linux / Arm64 :
docker run <args> grafana/grafana-arm64v8-linux:dev-musl

Linux / Arm :
docker run <args> grafana/grafana-arm32v7-linux:dev-musl

Bitte beachten Sie, dass diese Images auf dem aktuellen Entwicklerzweig (master / Grafana v6.5.0-pre) von Grafana basieren. Wenn Sie also mit einer vorhandenen Grafana-Installation testen möchten, denken Sie daran, Ihre vorhandenen Daten zu

Testumfang:

  • Stellen Sie sicher, dass der Container erfolgreich ausgeführt werden kann und die Verwendung von docker logs <image name> keine unerwarteten Fehler ausgibt.
  • Versuchen Sie nach Möglichkeit, eine Datenquelle hinzuzufügen / eine Verbindung herzustellen und ein Dashboard / Panel zu rendern
  • Optional: Stellen Sie sicher, dass Sie Plugins herunterladen / installieren können
  • Geben Sie in dieser Ausgabe oder in PR # 19798 Feedback, indem Sie einen Kommentar abgeben, in dem Sie angeben, welches Gerät / welche Architektur Sie verwendet haben und welches Ergebnis Sie erzielen.

Danke im Voraus

$ uname -a
Linux black-pearl 4.14.70-hypriotos-v7+ #1 SMP Sat Sep 22 05:54:18 UTC 2018 armv7l GNU/Linux

LGTM läuft auf einem Raspberry 3B

  • [x] Stellen Sie sicher, dass der Container erfolgreich ausgeführt werden kann und Docker-Protokolle verwendetsollte nichts Unerwartetes wie Fehler ausgeben.
  • [x] Versuchen Sie nach Möglichkeit, eine Datenquelle hinzuzufügen / eine Verbindung herzustellen und ein Dashboard / Panel zu rendern
  • [x] Optional: Stellen Sie sicher, dass Sie Plugins herunterladen / installieren können

SBC: Cubietruck (auch bekannt als CubieBoard 3)

$ uname -a
Linux fernia 4.19.62-sunxi # 5.92 SMP Mi 31 Jul 22:07:23 MESZ 2019 armv7l armv7l armv7l GNU / Linux

LGTM

  • [x] Stellen Sie sicher, dass der Container erfolgreich ausgeführt werden kann und die Verwendung von Docker-Protokollen nichts Unerwartetes wie Fehler ausgeben sollte.
  • [x] Versuchen Sie nach Möglichkeit, eine Datenquelle hinzuzufügen / eine Verbindung herzustellen und ein Dashboard / Panel zu rendern
  • [x] Optional: Stellen Sie sicher, dass Sie Plugins herunterladen / installieren können

Vielen Dank für die schnellen Antworten und die Hilfe. Sehr geschätzt.

Einverstanden, danke für die Hilfe beim Test!

Am Dienstag, 22. Oktober 2019, 19:05 Uhr Marcus Efraimsson [email protected]
schrieb:

Vielen Dank für die schnellen Antworten und die Hilfe. Sehr geschätzt.

- -
Sie erhalten dies, weil Sie zugewiesen wurden.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/grafana/grafana/issues/19585?
oder abbestellen
https://github.com/notifications/unsubscribe-auth/AACEVV3OBIAWAV3ZNAP4XEDQP4XHPANCNFSM4I42J4CA
.

uname -a
Linux raspberrypi4 4.19.75-v7l+ #1270 SMP Tue Sep 24 18:51:41 BST 2019 armv7l GNU/Linux

Himbeer pi 4b

docker -v
Docker version 19.03.4, build 9013bf5
  • [x] Stellen Sie sicher, dass der Container erfolgreich ausgeführt werden kann und die Verwendung von Docker-Protokollen nichts Unerwartetes wie Fehler ausgeben sollte
  • [X] Wenn möglich, versuchen Sie, eine Datenquelle hinzuzufügen / eine Verbindung herzustellen und ein Dashboard / Panel (influxdb mit Grafikpanel) zu rendern
  • [] Optional: Stellen Sie sicher, dass Sie Plugins herunterladen / installieren können

LGTM: Himbeer-Pi 4

$ uname -a
Linux worker-3 4.19.75-v7l+ #1270 SMP Tue Sep 24 18:51:41 BST 2019 armv7l GNU/Linux
  • [x] Stellen Sie sicher, dass der Container erfolgreich ausgeführt werden kann und die Verwendung von Docker-Protokollen nichts Unerwartetes wie Fehler ausgeben sollte
  • [x] Wenn möglich, versuchen Sie, eine Datenquelle hinzuzufügen / zu verbinden und ein Dashboard / Panel zu rendern (influxdb, prometheus, loki).
  • [x] Stellen Sie sicher, dass Sie Plugins herunterladen / installieren können (raintank-worldping-App, grafana-kubernetes-App, devopsprodigy-kubegraf-App, grafana-piechart-panel).

LGTM

rockchip rock64

$ uname -a
Linux rock64 4.4.132-1072-rockchip-ayufan-ga1d27dba5a2e #1 SMP Sat Jul 21 20:18:03 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
  • [x] Stellen Sie sicher, dass der Container erfolgreich ausgeführt werden kann und die Verwendung von Docker-Protokollen nichts Unerwartetes wie Fehler ausgeben sollte
  • [x] Wenn möglich, versuchen Sie, eine Datenquelle hinzuzufügen / zu verbinden und ein Dashboard / Panel zu rendern (influxdb, prometheus, loki).
  • [] Stellen Sie sicher, dass Sie Plugins herunterladen / installieren können (raintank-worldping-app, grafana-kubernetes-app, devopsprodigy-kubegraf-app, grafana-piechart-panel)

Docker-Fähigkeitsstufe
Neuling
Grafana Fähigkeitsstufe
Neuling
-uname -a
Linux SwingerPictureServer 4.19.75-v7 + # 1270 SMP ........... armv71 GNU / Linux
HW
Himbeer pi 3B
compose.sh Datei:
Docker run \
--name Grafana_test \
-p 3001: 3001 \
-e "GF_SERVER_ROOT_URL = http: //: 3001 "\
-e "GF_SECURITY_ADMIN_PASSOWRD ="\
--mount type = bind, source = "/ home / pi / DockerConf / Grafana / test / config", target = "/ etc / grafana": ro \
grafana / grafana-arm32v7- linux: dev-musl

Logdatei:
warn: msg = "phantomJS ist veraltet und wird in der zukünftigen Version entfernt ...

Vielen Dank an alle. Wir haben dies zum Master zusammengeführt, aber beschlossen, dieses Update in Grafana v6.5.0 aufzunehmen, das in ein paar Wochen veröffentlicht werden soll. Bis dahin können Sie nächtliche Builds verwenden, wenn Sie Grafana v6.5-vor ARM-kompatible Grafana-Docker-Images mithilfe des Tags grafana/grafana:master ausführen möchten.

Bitte fügen Sie dem Docker-Hub einen Hinweis hinzu, damit Sie dieses Problem leichter finden können. Wenn Sie gerade an grafana / grafana ziehen, erhalten Sie immer noch ein nicht funktionierendes Bild auf armhf.

Ich möchte nur kommentieren, dass grafana / grafana-arm32v7- linux: Die neueste Version funktioniert jetzt gut für mich (dieses Bild ), daher habe ich nicht angeheftete Versionen 👍

@mhansen du kannst direkt das Basisbild verwenden (grafana / grafana: aktuell), es ist multiarch :)

Ich verwende derzeit grafana / grafana: 6.5.1@sha256 : befcd84da2c1f3310b23d93ba9eec4a80df4c86c04bd39455623ac632fbcefdd in einem ARM-Cluster.

@theWaldschrat @pedroetb @mhansen @herm @SySfRaMe @ krystian-wojtas @pgolm @gcgarner @JochenLutz @iwittkau @JasonSwindle @ protik77 @ ata4 Wir könnten Ihnen beim Testen neuer Builds (Docker-Images und Teerarchive) helfen helfen? Wir würden uns freuen!

Die fraglichen Docker-Bilder

Die fraglichen Teerarchive

MUSL-Archive sind für Alpine Linux, GLIBC-Archive für reguläre Linux-Distributionen:

U / min

Docker-Bild
grafana / grafana-arm64v8- linux: master-df1d43167af035c6819923ecce135056f37c79c2-new-Pipeline funktioniert gut auf Raspberry Pi 4B mit Kernel 4.19.97-v8 + und Docker CE 19.03.5.

Danke @volschin!

Hatte heute ein Problem mit dem Container, nachdem er ungefähr 24 Stunden gelaufen war (kein Templating Init). Dies ist nichts, was in den letzten Monaten passiert ist. Vielleicht liegt also ein Stabilitätsproblem vor.

Hatte heute ein Problem mit dem Container, nachdem er ungefähr 24 Stunden gelaufen war (kein Templating Init). Dies ist nichts, was in den letzten Monaten passiert ist. Vielleicht liegt also ein Stabilitätsproblem vor.

Was für ein Problem hast du genau bei volschin gesehen?

@ aknuds1 Entschuldigung, ich bin noch nicht dazu gekommen, die neuen Docker-Arm-Bilder vollständig zu testen. Gibt es eine Möglichkeit, Tests zu automatisieren?

Ich habe keine automatisierte Methode, sorry @iwittkau.

Ich sehe grafana / grafana nicht mehr

$ docker run --rm mplatform/mquery grafana/grafana
Image: grafana/grafana
 * Manifest List: No
 * Supports: amd64/linux

Ich habe zu grafana / grafana: master gewechselt

Ich sehe grafana / grafana nicht mehr

$ docker run --rm mplatform/mquery grafana/grafana
Image: grafana/grafana
 * Manifest List: No
 * Supports: amd64/linux

Ich habe zu grafana / grafana: master gewechselt

@mhansen Interessant, danke für das Heads Up. Ich werde das überprüfen müssen.

Für das, was es wert ist, verwende ich momentan grafana/grafana-arm32v7-linux:latest . Obwohl es 6.7.1 installiert hat.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

deepujain picture deepujain  ·  3Kommentare

Azef1 picture Azef1  ·  3Kommentare

ricardclau picture ricardclau  ·  3Kommentare

Minims picture Minims  ·  3Kommentare

ahmetkakici picture ahmetkakici  ·  3Kommentare