How to start discourse inside a linux container?

LXD 上の Ubuntu サーバーで Raspberry Pi 4 と USB SSD を使用して Discourse を実行しようとしましたが、再構築中にハングアップしてタイムアウトしました。Btrfs ループバックストレージプールを使用するとハングアップが悪化/早期化し、ZFS ループバックストレージプールを使用するとさらに悪化しました。メモリ使用量は一貫して 1GB 周辺で、ピークは 3GB でした。ハングアップ時でも SSH/top は応答しましたが、すべての使用状況アクティビティが無視できるレベルに低下し、ギブアップしたことを示していました。

最近の LXD ドキュメント では、Docker の使用を有効にするために security.nesting を文字列値の true に設定することが推奨されており、私もそのようにしました。しかし、LXD ドキュメントには 本番環境の設定に関するページ もあり、約 20 の設定を変更する必要があると記載されていますが、私は試していません。

結局、Discourse を LXD で実行する試みを断念し、同じマシンで Docker を使用して Discourse を実行しました。

私の試みの詳細は次のとおりです。

奇妙なことに、以下の LXD Docker ガイドでは Btrfs を推奨していますが、LXD ドキュメントでは Btrfs を推奨していません。また、パーティションを使用していないように見えます(ただし、追加の設定を行い、docker.io 以外のパッケージをインストールし、Btrfs ボリュームのみを Docker にアタッチしています)。そのため、なぜ問題が発生したのか疑問に思っています。

@vmsman さん、これまでで最も成功したセットアップのようですので、プロファイル、ストレージプール、および変更が必要だったシステム設定など、LXD セットアップの詳細を共有していただけますか?

LXD について、いくつか疑問があります。

  • ストレージプールのループバックファイルではなくパーティションを使用することで、パフォーマンスの問題が解決し、ハングアップの問題が解消されるかどうか。
  • MicroCloud や LXD クラスターを使用すること、または Ceph をストレージプールとして使用することが役立つかどうか。

全体として、LXD で Discourse を動作させることはできませんでしたが、LXD の使いやすさには非常に感銘を受けています。以前は HashiCorp で数か月間苦労しました。HashiCorp はエンタープライズユースケースにしか興味がないように思われます。一方、LXD はすぐに機能し、人々は小規模チームやインディー開発者が進歩できるようにサポートしているようです。