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 إعجابات

حاولت تشغيل discourse داخل lxd على خادم أوبونتو على جهاز raspberry pi 4 مع قرص SSD خارجي، وكان الأمر يتوقف ويحدث له انتهاء مهلة أثناء إعادة البناء، وكان التوقف أسوأ/مبكرًا عند استخدام مجمع تخزين btrfs loopback ولاحقًا عند استخدام مجمع تخزين zfs loopback. كانت الذاكرة ثابتة حول 1 جيجابايت مع ذروات 3 جيجابايت. كانت التوقفات تجعل ssh/top مستجيبين ولكن جميع أنشطة الاستخدام تنخفض إلى الحد الأدنى، مما يشير إلى أنه قد استسلم.

في الوقت الحاضر، توثيق lxd يوصي فقط بتعيين security.nesting إلى القيمة النصية true لتمكين استخدام docker، وهو ما فعلته. ومع ذلك، فإن توثيق lxd لديه أيضًا صفحة لتكوين الإنتاج مع حوالي 20 إعدادًا تحتاج إلى تغيير، والتي لم أجربها.

في النهاية، تخلت عن محاولة lxd الخاصة بي لـ discourse، وقمت بتشغيل discourse عبر docker على نفس الجهاز.

تفاصيل جهودي هنا:

من الغريب أن دليل lxd docker أدناه يوصي بـ btrfs على الرغم من أن توثيق lxd يوصي ضده، ولا يبدو أنه يستخدم قسمًا له (ومع ذلك يقومون بتعيين بعض الإعدادات الإضافية، وتثبيت حزم أخرى بدلاً من docker.io، ويربطون وحدة btrfs بـ docker فقط)، لذلك أتساءل لماذا واجهت مثل هذه المشاكل:

@vmsman هل يمكنك مشاركة المزيد من التفاصيل حول إعداد lxd الخاص بك، مثل الملفات الشخصية، ومجمعات التخزين، وأي إعدادات نظام احتاجت إلى تغييرات، حيث يبدو أن لديك الإعداد الأكثر نجاحًا حتى الآن:

بالنسبة لـ lxd، بعض الأشياء التي أتساءل عنها:

  • ما إذا كانت الأقسام لمجمعات التخزين بدلاً من ملفات loopback ستحل مشاكل الأداء بما يكفي لاختفاء مشاكل التوقف
  • ما إذا كان استخدام microcloud أو مجموعة lxd سيساعد، أو استخدام ceph كمجمع تخزين

بشكل عام، على الرغم من عدم نجاحي في تشغيل discourse في lxd، إلا أنني معجب جدًا بـ lxd وسهولة استخدامه. لقد أمضيت سابقًا أشهرًا في النضال مع hashicorp، حيث يبدو أن hashicorp مهتم فقط بحالات الاستخدام للمؤسسات. بينما يعمل lxd ببساطة ويبدو أن الأشخاص داعمون بما يكفي لتمكين الفرق الصغيرة والمطورين المستقلين من إحراز تقدم.