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 Me gusta

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 Me gusta

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 Me gusta

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

9 Me gusta

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 me gusta

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 me gusta

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 Me gusta

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 me gusta

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 Me gusta

Intenté poner en marcha discourse dentro de lxd en un servidor ubuntu en una raspberry pi 4 con un ssd usb, y simplemente se colgaba y daba error durante las reconstrucciones. El cuelgue era peor/más temprano usando un pool de almacenamiento de loopback btrfs y más tarde usando un pool de almacenamiento de loopback zfs. La memoria era constante alrededor de 1 GB con picos de 3 GB. Los cuelgues hacían que ssh/top respondieran, pero toda la actividad de uso caía a niveles insignificantes, lo que indicaba que se había rendido.

Hoy en día la documentación de lxd solo recomienda establecer security.nesting al valor de cadena true para habilitar el uso de docker, que es lo que hice. Sin embargo, la documentación de lxd también tiene una página para la configuración de producción con unos 20 ajustes que necesitan ser cambiados, los cuales no he probado.

Al final, renuncié a mi intento de lxd para discourse y simplemente ejecuté discourse a través de docker en la misma máquina.

Detalles de mis esfuerzos aquí:

Curiosamente, la guía de lxd docker a continuación recomienda btrfs a pesar de que la documentación de lxd lo desaconseja, y no parece usar una partición para ello (sin embargo, establecen algunos ajustes adicionales, instalan otros paquetes en lugar de docker.io, y adjuntan el volumen btrfs solo a docker), así que me pregunto por qué tuve tantos problemas:

@vmsman, ¿puedes compartir más detalles sobre tu configuración de lxd, como perfiles, pools de almacenamiento y cualquier ajuste del sistema que necesitara cambios, ya que parece que has tenido la configuración más exitosa hasta ahora?:

Para lxd, algunas cosas que me pregunto:

  • si las particiones para los pools de almacenamiento en lugar de los archivos de loopback resolverían los problemas de rendimiento lo suficiente como para que desaparezcan los problemas de cuelgue.
  • si usar microcloud o un clúster de lxd ayudaría, o usar ceph como pool de almacenamiento.

En general, a pesar de no haber conseguido que discourse funcionara en lxd, estoy muy impresionado con lxd y su facilidad de uso. Anteriormente pasé meses luchando con hashicorp, ya que hashicorp solo parece interesado en casos de uso empresariales. Mientras que lxd simplemente funciona y la gente parece lo suficientemente solidaria como para permitir que los equipos pequeños y los desarrolladores independientes progresen.