Apple M1、Docker arm64エミュレーション

./launcher rebuild app の手順で、–platform linux/arm64 をどこに指定すればよいでしょうか?

M1 で Discourse/Docker をローカルでテストする必要があります。

ARM ビルドが完全に実装されるまでの間、これを設定できれば幸いです。

よろしくお願いいたします、
ウォーカー

Discourse は現在 arm64 では動作しないため、ランチャーにはその切り替えオプションはありません。

現在、この問題に取り組んでおり、チームのメンバーの多くがすでに M1 で Discourse を運用していますが、miniracer から派生するトランジティブ依存関係である libv8 の分岐が必要となっています。

ラファエル、ありがとう。

皆さん、最高ですね。

よろしく、
ウォーカー

Dockerの引数パラメータを試してみてください。これで動作するかもしれません。

開発環境でのパフォーマンスはいかがでしょうか?

シングルコアのRailsワーク(トピック作成やトピック表示など)において、驚異的なパフォーマンスを発揮します。ただし、マルチコア処理やディスクI/Oに関わる処理においては、最近のx86_64アーキテクチャのどの製品よりも依然として大幅に遅いです。

なるほど、この情報ありがとうございます。M1 向けのソフトウェアサポートが完璧になるにはまだ時間がかかると思いますが、将来性は明るそうです。

少し不名誉なことに聞こえるかもしれませんが、最近購入したデバイスが突然陳腐化するわけではないという事実に、少し安心しています。:wink:

それでもうまくいかない場合は、DOCKER_DEFAULT_PLATFORM 環境変数を使用できます。私は現在、zsh プロファイルに以下を設定しています。

export DOCKER_DEFAULT_PLATFORM=linux/amd64

Docker を使用する際は、アーキテクチャが生産環境のシステムと一致することをほぼ常に望んでいます。

前世代の MacBook と比較すると大きな改善ですが、ファイルシステムのパフォーマンスに関する問題 はまだ存在します。それでも、ハイエンドな Linux デスクトップの方がまだ速いです。

例えば、bin/turbo_rspec を core で実行すると、M1 MacBook Pro(Discourse、Redis、Postgres をネイティブ実行)で約 2 分 50 秒です。ハイエンドな Linux デスクトップを使用しているチームメンバーは、これを約 1 分で完了できます。

これをstableとして有効にするためのロードマップはどのようなものですか?

新しいミニレーサー/V8 Gemのリリースが必要です。現時点ではリリース予定日は未定で、アルファ版のテスト中です。

@sam、テストの進捗はいかがですか?M1 互換バージョンに非常に興味があります。

それほど悪いタイミングではありません……この速度にすら及ばない人(開発者)も世の中にはいるのですから……。

M1 上での Discourse の開発については、Rails フォーラムにいくつかの情報が掲載されています:https://discuss.rubyonrails.org/t/tips-and-tricks-for-developing-rails-applications-on-apple-silicon/77089。チームの数名が日常的にこの環境を使用しており、問題なく動作しています。

ただし、M1 上で本番環境の Discourse サーバーを稼働させることは推奨しません。

もしそうなら、なぜ一般提供(GA)としてリリースしないのですか?

本番環境の Discourse サーバーを M1 で実行するのはお勧めしません。

なぜですか?

@david

本当に素晴らしいです。このお礼の言葉が見つかりません。素晴らしい仕事ですね。

あと、M1 MacBook Air は Discourse の開発に十分でしょうか?

そうだと思います :slight_smile:

本当に素晴らしいです。このプロジェクトに感謝する言葉が見つかりません。素晴らしい仕事ですね。

Discourse の評判を広めていただくだけで十分ですよ……

意味がわかりません…これらすべては公開されていますので、ご自身でその手順に従って環境を構築することができます。

本番環境のインストール手順は、AMD64 Linux ホスト上で実行することを想定しています。このトピックのヒントを使用して他の OS やアーキテクチャで動作させることは可能かもしれませんが、動作を保証するものではありません。

もちろんです。私は Pro を使用していますが、M1 MacBook Air や Mac Mini を使用している人もいます。開発ベンチマークでは、それらの間のパフォーマンス差はほとんど見られません。

どこで?公式の公開リポジトリですか?

リンクした記事には以下が記載されています:

もしご心配されているのであれば、Discourse に対してプライベートな開発ブランチに含まれるような変更を加えたことはありません。David が上記で投稿したガイドに記載されているように、使用する依存関係の ARM64 バージョンをインストールすることで、M1 システム上で Discourse を動作させることができます。

公式リポジトリが新しいハードウェアに対応することを皆が望んでいますよね。クローゼットに隠されたようなコードではなく。