How to start discourse inside a linux container?

Hello Discourse Friends!
I managed to setup discourse inside a LXD/LXC and want to ask, is there a recommendation how to start the deamon process?

Is there a better ‘method’ than starting it with:

bundle exec rails s -b 0.0.0.0 2>&1 > /var/log/discourse.log

How can this be done with systemd? Thank you in advance.

Kind Regards,
Ingo Baab from Germany

「いいね!」 2

If you want to install Discourse in anything resembling a production environment, you should follow the cloud install instructions. https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md

「いいね!」 2

Thank you for this answer, Jay, but I am happy with my installation. Works fine inside Linuxcontainer… (I do not like docker at all…)

「いいね!」 2

There are a zillion ways that you might install Discourse that can all work just fine, but only one is supported here.

「いいね!」 9

Hi,
how to install it using LCX container. I dont want to use docker, because I use proxmox to manage VMs and docker cant be installed in LCX container.

「いいね!」 1

You would be entering uncharted territory and would need to build something that you alone support. The code for discourse docker is open so you could adapt it, I guess.

「いいね!」 1

You mean an LXC container? I know someone who worked for canonical and had a lot to do with LXC. He uses docker now.

I just installed Discourse in a Docker container inside an LXD container, which may seem weird but it’s something LXD was intentionally designed to support.

How to Install Discourse in an LXD / Docker Container

If you encounter problems with Docker / Discourse failing to run in LXD then you’ll likely need to tweak some settings in your host’s /etc/sysctl.conf namely:

kernel.keys.maxkeys=2000
kernel.keys.maxbytes=200000
net.ipv4.tcp_mem=182757 243679 365514
net.core.netdev_max_backlog=182757

These are production values for LXD and for me they were neccessary to get Discourse running.

「いいね!」 3

Can you send this guide somewhere else? The site is blocking access for me, and I would also like to install discourse on LXC ProxMox

「いいね!」 1

That’s wrong

Just follow the next post from the link above :slight_smile:

edit: I installed Discourse the official way inside a LXC container this way :wink:

「いいね!」 4

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 はすぐに機能し、人々は小規模チームやインディー開発者が進歩できるようにサポートしているようです。