Como iniciar o Discourse dentro de um contêiner Linux?

Olá, amigos do Discourse!

Consegui configurar o Discourse dentro de um LXD/LXC e gostaria de saber se há alguma recomendação sobre como iniciar o processo do daemon.

Existe um método melhor do que iniciá-lo com:

bundle exec rails s -b 0.0.0.0 2>&1 > /var/log/discourse.log

Como isso pode ser feito com o systemd? Obrigado antecipadamente.

Atenciosamente,
Ingo Baab, da Alemanha

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:

Tentei configurar o Discourse dentro do LXD no Ubuntu Server em um Raspberry Pi 4 com um SSD USB, e ele simplesmente travava e expirava durante as reconstruções. O travamento era pior/mais cedo usando um pool de armazenamento de loopback btrfs e, posteriormente, usando um pool de armazenamento de loopback zfs. A memória era consistente em torno de 1 GB com picos de 3 GB. Os travamentos mantinham o SSH/top responsivos, mas toda a atividade de uso caía para níveis insignificantes, indicando que havia desistido.

Atualmente, a documentação do LXD apenas recomenda definir security.nesting para o valor string true para habilitar o uso do Docker, o que fiz. No entanto, a documentação do LXD também tem uma página para configuração de produção com cerca de 20 configurações que precisam ser alteradas, o que ainda não tentei.

No final, desisti da minha tentativa com o LXD para o Discourse e simplesmente executei o Discourse via Docker na mesma máquina.

Detalhes dos meus esforços aqui:

Estranhamente, o guia do LXD para Docker abaixo recomenda btrfs, apesar de a documentação do LXD desaconselhá-lo, e não parece usar uma partição para ele (no entanto, eles definem algumas configurações extras, instalam outros pacotes em vez de docker.io e anexam o volume btrfs apenas ao Docker), então me pergunto por que tive tantos problemas:

@vmsman, você pode compartilhar mais detalhes sobre sua configuração do LXD, como perfis, pools de armazenamento e quaisquer configurações do sistema que precisaram ser alteradas, já que parece que você teve a configuração mais bem-sucedida até agora:

Para o LXD, algumas coisas que me pergunto:

  • Se partições para pools de armazenamento em vez de arquivos de loopback resolveriam os problemas de desempenho o suficiente para que os problemas de travamento desaparecessem.
  • Se usar microcloud ou um cluster LXD ajudaria, ou usar ceph como pool de armazenamento.

Ao todo, apesar de não ter conseguido fazer o Discourse funcionar no LXD, estou muito impressionado com o LXD e sua facilidade de uso. Anteriormente, passei meses lutando com o HashiCorp, pois o HashiCorp parece interessado apenas em casos de uso corporativo. Enquanto isso, o LXD simplesmente funciona e as pessoas parecem ser solidárias o suficiente para permitir que pequenas equipes e desenvolvedores independentes progridam.