何が起こったのか:
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のみが含まれています。
環境:
この@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
結果は次のとおりです。
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>
を使用しても、エラーなどの予期しないものが出力されないことを確認します。前もって感謝します
$ 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
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
迅速な対応と支援に感謝します。 非常に感謝しています。
同意しました。テストにご協力いただきありがとうございます。
火、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
LGTM:ラズベリーパイ4
$ uname -a
Linux worker-3 4.19.75-v7l+ #1270 SMP Tue Sep 24 18:51:41 BST 2019 armv7l GNU/Linux
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
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://
-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アーカイブ)をテストするのに役立つかもしれません。手を貸す? よろしくお願いします!
MUSLアーカイブはAlpineLinux用であり、GLIBCアーカイブは通常のLinuxディストリビューション用です。
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をインストールしましたが。
最も参考になるコメント
皆さんありがとう。 これをmasterにマージしましたが、この修正をGrafana v6.5.0に含めて、数週間以内にリリースすることにしました。 それまでは、
grafana/grafana:master
タグを使用してGrafana v6.5-preARM互換のGrafanadockerイメージを実行する場合は、ナイトリービルドを使用できます。