كيفية بدء discourse داخل حاوية Linux؟

مرحباً يا أصدقاء Discourse!
نجحت في إعداد Discourse داخل بيئة LXD/LXC وأود أن أسأل: هل هناك توصية حول كيفية بدء عملية الخدمة (daemon process)؟

هل توجد طريقة أفضل من تشغيلها عبر الأمر التالي:
bundle exec rails s -b 0.0.0.0 2>&1 > /var/log/discourse.log

وكيف يمكن تنفيذ ذلك باستخدام systemd؟ شكراً مقدماً.

مع أطيب التحيات،
إنغو باب من ألمانيا

If you want to install Discourse in anything resembling a production environment, you should follow the cloud install instructions. discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

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

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

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.

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.

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.

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

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:

حاولت تشغيل 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 ببساطة ويبدو أن الأشخاص داعمون بما يكفي لتمكين الفرق الصغيرة والمطورين المستقلين من إحراز تقدم.