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 « J'aime »

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 « J'aime »

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 « J'aime »

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

9 « J'aime »

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 « J'aime »

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 « J'aime »

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 « J'aime »

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 « J'aime »

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 « J'aime »

J’ai essayé de faire fonctionner discourse dans lxd sur un serveur ubuntu sur un raspberry pi 4 avec un ssd usb, et cela se bloquait et expirait pendant les reconstructions. Le blocage était pire/plus précoce en utilisant un pool de stockage en boucle btrfs et plus tard en utilisant un pool de stockage en boucle zfs. La mémoire était constante autour de 1 Go avec des pics de 3 Go. Les blocages faisaient que ssh/top restaient réactifs, mais toute activité d’utilisation tombait à un niveau négligeable, indiquant qu’il avait abandonné.

Ces jours-ci, la documentation lxd recommande simplement de définir security.nesting sur la valeur de chaîne true pour activer l’utilisation de docker, ce que j’ai fait. Cependant, la documentation lxd a également une page pour la configuration de production avec environ 20 paramètres qui doivent être modifiés, ce que je n’ai pas essayé.

En fin de compte, j’ai abandonné ma tentative lxd pour discourse et j’ai simplement exécuté discourse via docker sur la même machine.

Détails de mes efforts ici :

Étrangement, le guide docker lxd ci-dessous recommande btrfs malgré les recommandations de la documentation lxd contre celui-ci, et ne semble pas utiliser de partition pour celui-ci (pourtant, ils définissent des paramètres supplémentaires, installent d’autres packages plutôt que docker.io, et attachent le volume btrfs uniquement à docker), donc je me demande pourquoi j’ai eu de tels problèmes :

@vmsman pouvez-vous partager plus de détails sur votre configuration lxd, tels que les profils, les pools de stockage et les paramètres système qui ont dû être modifiés, car il semble que vous ayez eu la configuration la plus réussie jusqu’à présent :

Pour lxd, voici quelques questions que je me pose :

  • savoir si des partitions pour les pools de stockage au lieu de fichiers en boucle résoudraient suffisamment les problèmes de performance pour que les problèmes de blocage disparaissent
  • savoir si l’utilisation de microcloud ou d’un cluster lxd aiderait, ou l’utilisation de ceph comme pool de stockage

Dans l’ensemble, malgré le fait que je n’ai pas réussi à faire fonctionner discourse dans lxd, je suis très impressionné par lxd et sa facilité d’utilisation. J’ai passé des mois auparavant à lutter avec hashicorp, car hashicorp ne semble s’intéresser qu’aux cas d’utilisation d’entreprise. Alors que lxd fonctionne tout simplement et que les gens semblent suffisamment solidaires pour permettre aux petites équipes et aux développeurs indépendants de progresser.