Grafana: Docker:v6.4.x以降のARMイメージは機能しません

作成日 2019年10月02日  ·  39コメント  ·  ソース: grafana/grafana

何が起こったのか
DockerのGrafana6.4.X ARMは、RaspbianBusterでは機能しません。
コンテナを実行しようとしたときのエラーメッセージ:
/run.sh:行80:/ usr / share / grafana / bin / grafana-server:そのようなファイルまたはディレクトリはありません

あなたが起こると期待したこと
明らか:Grafanaはエラーなしで実行されます。

それを再現する方法(可能な限り最小限かつ正確に)
docker run grafana / grafana

他に知っておくべきことはありますか?
エラーはlib-cの不一致が原因で発生します。Grafanaはld-linux-armhf.soでビルドされていますが、Alpineベースイメージにはld-musl-armv7.soのみが含まれています。

環境

  • グラファナバージョン:6.4.X
  • データソースのタイプとバージョン:InfluxDB
  • OS Grafanaのインストール先:Dockerを使用したRaspbian Buster
  • ユーザーOSとブラウザ:Windows / Firefox
  • Grafanaプラグイン:なし
  • その他:なし
aredocker typbug

最も参考になるコメント

皆さんありがとう。 これをmasterにマージしましたが、この修正をGrafana v6.5.0に含めて、数週間以内にリリースすることにしました。 それまでは、 grafana/grafana:masterタグを使用してGrafana v6.5-preARM互換のGrafanadockerイメージを実行する場合は、ナイトリービルドを使用できます。

全てのコメント39件

この@theWaldschratを報告していただき、ありがとうございます。さらに調査します。

@theWaldschratどのデバイスを使用していますか? その32ビットまたは64ビットアーキテクチャ(armv6m armv7、armv8など)ですか?

たぶん、 https: //pkgs.alpinelinux.org/package/edge/main/armhf/libc6-compatをGrafana dockerイメージに含める必要があり

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

@theWaldschrat上記で問題が解決したことを確認できますか? 実際のARMデバイスにアクセスせずに確認するのは難しいです。Dockerベースのアームイメージが可能かもしれませんが、ここで私たちを助けていただければ幸いです。 ありがとう

デバイスはRaspberryPi4Bです。 技術的にはARM64v8ですが、Raspbianはデフォルトで32ビットカーネルとユーザーランドを実行するため、ARM32v7です。

uname -a
ホストOS:
Linux raspberrypi 4.19.66-v7l+ #1253 SMP Thu Aug 15 12:02:08 BST 2019 armv7l GNU/Linux
グラファナ6.3.6画像:
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(最新)画像:
Linux 84a01cb75816 4.19.66-v7l+ #1253 SMP Thu Aug 15 12:02:08 BST 2019 armv7l Linux

まだ多くのDockerイメージを作成していなかったため、少なくともすぐには、新しいイメージで上記のコマンドを試すことができません。 しかし、私がしたこと:エントリポイントbashとユーザーrootを使用してgrafana:latestコンテナを実行します。
docker run -it -p 3001:3000 --entrypoint="bash" --user=root grafana/grafana
結果は次のとおりです。

  • /run.shを手動で実行すると、同じエラーメッセージが表示されるため、確認されています。
  • 上記のコマンドを実行します:エラーなし。
  • もう一度/run.shを実行します:新しいエラーメッセージ:
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
  • ldd /usr/share/grafana/bin/grafana-serverしても、ライブラリが見つからないことについて文句を言うことはなくなりましたが、上記と同じ結果が得られます。

私は専門家ではありませんが、lib-cにはまだ互換性がないと思います。

@theWaldschratありがとうございました。

いくつかの追加事項を確認するために、これらを具体的に試して、同じ問題が発生することを確認できます。
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

念のため、grafana-serverを実行して起動することもできますか?
docker run -it -p 3001:3000 --entrypoint="bash" --user=root grafana/grafana-arm64v8-linux:6.4.1

最初の2つはすべて、前に説明したのと同じことを行います。
/run.sh 、直接/usr/share/grafana/bin/grafana-serverしても違いはありません。

3つ目は、アーチの不一致でさえ始まりません。
standard_init_linux.go:211: exec user process caused "exec format error"

同じ問題があり、バージョン6.3.6にダウングレードする必要があったため、ARMv7ではすべてのAlpineベースの6.4.xイメージが壊れているようです。

ありがとう。 bashに入った後、apk addを使用してmusl-devパッケージをインストールしてみてください。

musl-devは問題なくインストールされますが、 libc6-compat有無にかかわらず、問題に影響はありません。

https://github.com/armhf-docker-library/alpine-pkg-glibc/releasesからglibcapksをインストールすると、 grafana-serverを開始できます。 ただし、問題を正しく理解している場合は、バイナリをmuslに静的にリンクすることをお勧めします。

動的なglibcリンクではなく、静的にmuslにリンクするのがAlpineのアイデアです。 それはより速く、より小さく、より安定し、潜在的により安全です。 少なくともそれは彼らが言うことです。
しかし、私が見る限り、Grafanaはglibcに対してリンクしているターゲットイメージの外側にビルドされているため、上記のようにglibcをインストールするか、すでにglibcが含まれている別のベースイメージを使用することをお勧めします。

この変更がARMデバイスのDockerイメージを効果的に破壊したことを考えると、「調査が必要」というタグよりも優れたものを期待していました。

はぁ! 「アジャイル開発」の呪いだと思います。

見た目は少し異なりますが、OSXでエラーを再現できます。

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

私はそれを修正できるかどうかを確認します。

明日までに修正できることを期待して、この問題の根本原因を先導する可能性があります。

glibcのものに加えてmuslバイナリを構築することにより、これを解決するために取り組んでいます。

これにも出くわしました。 私のシステムはaarch64(RockPro64)で、同じエラーが発生します。

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

#19798の作業に基づいて、 dev-muslという名前のタグをgrafanadockerハブリポジトリにプッシュしました。 エミュレーションを使用してarmおよびarm64dockerイメージをテスト実行することしかできなかったため、armおよびarm64 dockerイメージのテストを支援して、期待どおりに機能することを確認してください。 マニフェストはgrafana / grafanaにプッシュされていないため、armまたはarm64を試す場合は、正しいリポジトリを手動で指定する必要があります。以下を参照してください。

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

これらのイメージはGrafanaの現在の開発者ブランチ(master / Grafana v6.5.0-pre)に基づいているため、既存のGrafanaインストールでテストする場合は、既存のデータ

テスト範囲:

  • コンテナが正常に実行でき、 docker logs <image name>を使用しても、エラーなどの予期しないものが出力されないことを確認します。
  • 可能であれば、データソースを追加/接続して、ダッシュボード/パネルをレンダリングしてみてください
  • オプション:プラグインをダウンロード/インストールできることを確認します
  • 使用したデバイス/アーキテクチャとその結果をコメントして、この号またはPR#19798にフィードバックを提供してください。

前もって感謝します

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

Raspberry3Bで実行されているLGTM

  • [x]コンテナが正常に実行され、Dockerログを使用できることを確認しますエラーのような予期しないものを出力するべきではありません。
  • [x]可能であれば、データソースを追加/接続して、ダッシュボード/パネルをレンダリングしてみてください
  • [x]オプション:プラグインをダウンロード/インストールできることを確認します

SBC:Cubietruck(別名CubieBoard 3)

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

LGTM

  • [x]コンテナーが正常に実行でき、Dockerログを使用してもエラーなどの予期しないものが出力されないことを確認します。
  • [x]可能であれば、データソースを追加/接続して、ダッシュボード/パネルをレンダリングしてみてください
  • [x]オプション:プラグインをダウンロード/インストールできることを確認します

迅速な対応と支援に感謝します。 非常に感謝しています。

同意しました。テストにご協力いただきありがとうございます。

火、2019年10月22日には、午後07時05分マーカスEfraimsson [email protected]
書きました:

迅速な対応と支援に感謝します。 非常に感謝しています。


あなたが割り当てられたので、あなたはこれを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/grafana/grafana/issues/19585?email_source=notifications&email_token=AACEVV4YMCESH5G7XWTY3QLQP4XHPA5CNFSM4I42J4CKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN
または購読を解除する
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

ラズベリーパイ4b

docker -v
Docker version 19.03.4, build 9013bf5
  • [x]コンテナが正常に実行でき、Dockerログを使用してもエラーなどの予期しないものが出力されないことを確認します
  • [X]可能であれば、データソースを追加/接続して、ダッシュボード/パネル(グラフパネル付きのinfluxdb)をレンダリングしてみてください
  • []オプション:プラグインをダウンロード/インストールできることを確認します

LGTM:ラズベリーパイ4

$ uname -a
Linux worker-3 4.19.75-v7l+ #1270 SMP Tue Sep 24 18:51:41 BST 2019 armv7l GNU/Linux
  • [x]コンテナが正常に実行でき、Dockerログを使用してもエラーなどの予期しないものが出力されないことを確認します
  • [x]可能であれば、データソースに追加/接続して、ダッシュボード/パネル(influxdb、prometheus、loki)をレンダリングしてみてください
  • [x]プラグイン(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]コンテナが正常に実行でき、Dockerログを使用してもエラーなどの予期しないものが出力されないことを確認します
  • [x]可能であれば、データソースに追加/接続して、ダッシュボード/パネル(influxdb、prometheus、loki)をレンダリングしてみてください
  • []プラグイン(raintank-worldping-app、grafana-kubernetes-app、devopsprodigy-kubegraf-app、grafana-piechart-panel)をダウンロード/インストールできることを確認します

Dockerスキルレベル
新入り
グラファナのスキルレベル
新入り
-uname -a
Linux SwingerPictureServer 4.19.75-v7 +#1270 SMP ........... armv71 GNU / Linux
HW
ラズベリーパイ3B
compose.shファイル:
docker run \
-名前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

ログファイル:
警告:msg = "phantomJSは非推奨であり、将来のリリースで削除される予定です...

皆さんありがとう。 これをmasterにマージしましたが、この修正をGrafana v6.5.0に含めて、数週間以内にリリースすることにしました。 それまでは、 grafana/grafana:masterタグを使用してGrafana v6.5-preARM互換のGrafanadockerイメージを実行する場合は、ナイトリービルドを使用できます。

この問題を見つけやすくするために、Dockerハブにメモを追加してください。 現在グラファナ/グラファナをプルしている場合でも、armhfで機能しない画像が表示されます。

grafana / grafana-arm32v7- linux:latestが正常に機能するようになったので(この画像)、バージョンの固定を解除しました👍

@mhansenベースイメージ(grafana / grafana:latest)を直接使用できます。

現在、ARMクラスターでgrafana / grafana:6.5.1@sha256 :befcd84da2c1f3310b23d93ba9eec4a80df4c86c04bd39455623ac632fbcefddを使用しています。

@theWaldschrat @pedroetb @mhansen @herm @SySfRaMe @ krystian-wojtas @pgolm @gcgarner @JochenLutz @iwittkau @JasonSwindle @ protik77 @ ata4さまざまなARMアーキテクチャで新しいビルド(Dockerイメージとtarアーカイブ)をテストするのに役立つかもしれません。手を貸す? よろしくお願いします!

問題のDockerイメージ

問題のタールアーカイブ

MUSLアーカイブはAlpineLinux用であり、GLIBCアーカイブは通常のLinuxディストリビューション用です。

RPM

Dockerイメージ
grafana / grafana-arm64v8- linux:master-df1d43167af035c6819923ecce135056f37c79c2-new-pipelineは、カーネル4.19.97-v8 +およびDockerCE19.03.5を搭載したRaspberryPi4Bで正常に動作します。

ありがとう@volschin!

約24時間実行した後、今日コンテナに問題がありました(テンプレートの初期化はありません)。 これは、過去数か月に起こったことではありません。 したがって、おそらく安定性の問題があります。

約24時間実行した後、今日コンテナに問題がありました(テンプレートの初期化はありません)。 これは、過去数か月に起こったことではありません。 したがって、おそらく安定性の問題があります。

@volschinでどのような問題が発生しましたか?

@ aknuds1申し訳ありませんが、新しいDockerアームイメージを完全にテストすることはまだできていません。 テストを自動化する方法はありますか?

自動化された方法はありません。申し訳ありませんが@iwittkauです。

grafana / grafana:最新のものはmultiarchであり、amd64 / linuxのみであることがわかりません。

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

grafana / grafana:masterに切り替えました

grafana / grafana:latestがマルチアーチであるとは見なされなくなり、amd64 / linuxのみが表示されます。

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

grafana / grafana:masterに切り替えました

@mhansen興味深い、頭を上げてくれてありがとう。 これを確認する必要があります。

その価値のために、私は今のところgrafana/grafana-arm32v7-linux:latestを使用しています。 6.7.1をインストールしましたが。

このページは役に立ちましたか?
0 / 5 - 0 評価