Raspberry Piについての議論 | ブログ

ラズベリーパイ4でDiscourseを動作させようと数ヶ月試していますが、うまくいきません。

Dockerイメージが古いのではないかと思われたため、他の2つのDockerイメージをアンインストールして再インストールしましたが、やはりうまくいきませんでした。

何か提案はありますか?

「いいね!」 1

はい、お使いのPiにarm64ディストリビューションをインストールしてください。

Raspberry Pi Foundationが正しいソフトウェアアーキテクチャをリリースするのに数年かかりました。これは、彼らがまだ32ビットハードウェア向けに開発していたためです。現在のarm64リリースにイメージを変更してください。良いニュースは、お使いのデバイスが8GBのRAMを搭載している場合、そのすべてを使用できるようになることです。

「いいね!」 1

arm64はすでに実行されているようですが、機能していません。

「いいね!」 1

実行している内容を確認してください。

cat /proc/cpuinfo

「いいね!」 1

ふぅ、たくさんのデータで、正直、知らないことばかりでした。どの行が私が実行していることを指定していますか?

「いいね!」 1

それが役に立つと思います。
uname -a
ここで役立つはずです。

「いいね!」 2

ありがとうございます!
結果:
Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux

「いいね!」 1

うーん、それは64ビット(aarch64)カーネルですが、armv8に関するDockerのエラーメッセージが出ていましたね。この状況や、どのようにしてここにたどり着いたのか、詳しい経緯はわかりません… 一般的なアドバイスとしては、安全なバックアップを取り、OSとDiscourseをクリーンインストールして復元することです。

インストールが成功しても、アップグレード時に問題が発生する可能性があるということではないと良いのですが。

「いいね!」 1

docker info の出力は何ですか?

特に Architecture: と書かれている行について教えてください。

「いいね!」 1

CPUアーキテクチャ: 8

「いいね!」 1

はい、何度もそうしてきましたし、またやる準備もできています。

現在、Raspberry Pi 400 Rev 1.0、Bullseye 64 lite で実行しています。
Bullseye 64、64 lite、32 lite、そして Bookworm 64 を試しました。記憶が正しければ、どのケースでも投稿したのと同じエラーが発生しました。

少し調べてみたところ、友人が Bullseye 64 lite にフラッシュし直せば問題が解決するはずだと提案してくれましたが、解決しませんでした。

余談ですが、Docker の sudo docker run hello-world を実行すると、「Docker is working」という期待通りのメッセージが表示されます。

「いいね!」 1

それじゃないです :stuck_out_tongue: 。出力全体を貼り付けてください。

「いいね!」 3

sudo docker info
Client: Docker Engine - Community
Version: 24.0.7
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.11.2
Path: /usr/libexec/docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v2.21.0
Path: /usr/libexec/docker/cli-plugins/docker-compose

Server:
Containers: 2
Running: 1
Paused: 0
Stopped: 1
Images: 4
Server Version: 24.0.7
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Using metacopy: false
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: systemd
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 3dd1e886e55dd695541fdcd67420c2888645a495
runc version: v1.1.10-0-g18a0cb0
init version: de40ad0
Security Options:
seccomp
Profile: builtin
cgroupns
Kernel Version: 6.1.21-v8+
Operating System: Debian GNU/Linux 11 (bullseye)
OSType: linux
Architecture: aarch64
CPUs: 4
Total Memory: 3.705GiB
Name: raspberrypi
ID: 183a2a7a-8acf-40eb-9386-c99d70ee8ed3
Docker Root Dir: /var/lib/docker
Debug Mode: false
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false

WARNING: No memory limit support
WARNING: No swap limit support

「いいね!」 1

Raspberry Pi 4 (RAM 8GB) と USB 接続の SSD を単一ドライブとして使用していますが、動作しません。以下のログで(または、1時間待っても進まないので根負けして…)ハングアップします。

I, [2024-02-06T00:58:51.743994 #1]  INFO -- : cd /var/www/discourse && su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
warning \"@discourse/lint-configs > eslint-plugin-ember > ember-eslint-parser@0.2.5\" has unmet peer dependency \"@typescript-eslint/parser@^6.15.0\".
warning \"@discourse/lint-configs > eslint-plugin-ember > ember-eslint-parser@0.2.5\" has incorrect peer dependency \"typescript@^5.3.3\".
warning \" > @glint/environment-ember-loose@1.3.0\" has unmet peer dependency \"@glimmer/component@^1.1.2\".
2024-02-06 01:15:58.966 UTC [64] WARNING:  worker took too long to start; canceled
2024-02-06 01:16:19.640 UTC [480] WARNING:  autovacuum worker started without a worker entry
2024-02-06 01:21:46.504 UTC [64] WARNING:  worker took too long to start; canceled
2024-02-06 01:22:18.863 UTC [481] WARNING:  autovacuum worker started without a worker entry

まだ何か処理をしているようです。

Tasks:  60 total,   7 running,  53 sleeping,   0 stopped,   0 zombie
%Cpu(s): 20.8 us, 60.5 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi, 18.8 si,  0.0 st
MiB Mem :   7807.7 total,   6783.7 free,    954.0 used,     70.0 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   6853.8 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
   3422 root      20   0 1928888  33180   2512 S  40.6   0.4  28:18.52 dockerd
   9922 root      20   0 1105300   9984   2944 S  30.2   0.1   1:02.72 docker
   3362 root      20   0 1934276  19060   1408 S  20.8   0.2  20:24.57 containerd
   9416 ubuntu    20   0 1148560 298160      0 R  12.0   3.7  10:03.66 node
   9158 dnsmasq   20   0   54992   2432    128 R  11.7   0.0   5:01.56 redis-server
   8997 root      20   0 1238120   5704    256 S  10.7   0.1   9:06.51 containerd-shim
   9504 ubuntu    20   0  569128  51532      0 R   8.8   0.6   5:20.97 node
   9930 pollina+  20   0  353212   5692   3328 R   6.8   0.1   0:06.97 postmaster
   9931 pollina+  20   0  352820   4156   2048 R   5.2   0.1   0:02.70 postmaster
   9098 pollina+  20   0  352844   3004   1024 R   2.3   0.0   0:15.75 postmaster
    219 root      20   0 1259732  36000  20352 S   1.0   0.5   1:10.50 cloudflared
   9658 root      20   0    9116   4864   2816 R   0.6   0.1   0:18.19 top

コンパイル時に進捗バーが表示されると嬉しいです。

以下の方法について、最適な方法を教えてください。

  • 何をしているのかを調べる方法
  • 再試行するために安全にシャットダウンする方法。以前 sudo shutdown --reboot 0 を試しましたが、Postgres データベースが破損し、マシンを再構築する必要がありました。
「いいね!」 1

受信しているメッセージをフォーラムやインターネットで検索できます。また、アナウンスへの返信ではなく、新しい投稿に移動してみてください。

検索バーにそれを入力すると、結果が表示されます。フォーラムやインターネットに対して投稿したものと同じことを繰り返してください。多くの情報が得られるはずです。
https://meta.discourse.org/search?q=has%20unmet%20peer%20dependency

「いいね!」 1

そのステップはコンパイルステップではなく、JSファイルをダウンロードしているだけです。非常に小さいファイルが大量にあるため、使用している特殊なストレージソリューションにとって、病的なほど悪いケースなのではないかと推測します。

「いいね!」 7

数日間実行したままにしておきます。そうでなければ、SSD付きのrpi4ではなく、SSD付きのrpi5が必要になると思います。

更新:
数時間後、さらに読み進め、lxdコンテナがbtrfsストレージプールを使用するのをやめ、zfsストレージプールを使用するように変更することにしました。完了後、約5分でその時点を通過できるようになりました(btrfsでは、ワーカーが失敗し始める前に約1時間ハングしていました)。

まだビルド中ですが、完了してバックアップを正常にインポートし、Cloudflare SSLを整理できたら、Scaleway内で実行されているDiscourse Dockerから、Raspberry Pi 4 + SSD内のLXDコンテナ内で実行されているDiscourse Dockerへの移行を公開します。

更新2:

「いいね!」 4

ベアメタルインスタンスを使用していたのはなぜですか?

「いいね!」 1

@Falco パーティーにはかなり遅れて参加していますが、私も同じ問題を経験しています。

アーム64を実行しているPi 5でインストールガイドに従いました。これを修正する方法について何かアイデアはありますか?

「いいね!」 1

どのOSを実行していますか?