Come avviare Discourse all'interno di un contenitore Linux?

Ciao amici di Discourse!
Sono riuscito a configurare Discourse all’interno di un ambiente LXD/LXC e vorrei chiedere: c’è una raccomandazione su come avviare il processo del demone?

Esiste un metodo migliore rispetto all’avvio con:
bundle exec rails s -b 0.0.0.0 2>&1 > /var/log/discourse.log

Come si può realizzare questo con systemd? Grazie in anticipo.

Cordiali saluti,
Ingo Baab, dalla Germania

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:

Ho provato a far funzionare discourse all’interno di lxd su un server ubuntu su un raspberry pi 4 con un ssd usb, e si bloccava e andava in timeout durante le ricostruzioni, il blocco era peggiore/precedente usando un pool di archiviazione loopback btrfs e successivamente usando un pool di archiviazione loopback zfs. La memoria era costante intorno a 1 GB con picchi di 3 GB. I blocchi avevano ssh/top reattivi ma tutta l’attività di utilizzo scendeva a livelli trascurabili, indicando che si era arreso.

Oggigiorno la documentazione di lxd consiglia solo di impostare security.nesting al valore stringa true per abilitare l’uso di docker, che è quello che ho fatto. Tuttavia la documentazione di lxd ha anche una pagina per la configurazione di produzione con circa 20 impostazioni che devono essere modificate, che non ho provato.

Alla fine ho rinunciato al mio tentativo di lxd per discourse e ho semplicemente eseguito discourse tramite docker sulla stessa macchina.

Dettagli dei miei sforzi qui:

Stranamente la guida lxd docker qui sotto consiglia btrfs nonostante la documentazione di lxd lo sconsigli, e non sembra utilizzare una partizione per esso (eppure impostano alcune impostazioni aggiuntive, installano altri pacchetti invece di docker.io, e collegano il volume btrfs solo a docker), quindi mi chiedo perché abbia avuto tali problemi:

@vmsman puoi condividere maggiori dettagli sulla tua configurazione lxd, come profili, pool di archiviazione e qualsiasi impostazione di sistema che necessitava di modifiche, poiché sembra che tu abbia avuto la configurazione di maggior successo finora:

Per lxd, alcune cose su cui mi interrogo:

  • se le partizioni per i pool di archiviazione invece dei file loopback risolvessero abbastanza i problemi di prestazioni da far scomparire i problemi di blocco
  • se l’uso di microcloud o di un cluster lxd potesse aiutare, o l’uso di ceph come pool di archiviazione

Tutto sommato, nonostante non sia riuscito a far funzionare discourse in lxd, sono molto colpito da lxd e dalla sua facilità d’uso. In precedenza ho trascorso mesi a lottare con hashicorp, poiché hashicorp sembra interessato solo ai casi d’uso aziendali. Mentre lxd funziona e le persone sembrano abbastanza di supporto da consentire a piccoli team e sviluppatori indipendenti di fare progressi.