Sei que não é uma tarefa fácil. Mas o propósito dos containers é ter um estado consistente e portátil. Então, se os containers forem usados como deveriam ser e funcionarem para você, há uma chance razoavelmente alta de que funcionem para todos que usam esse container.
Se o bootstrap fosse movido para dentro do container, em vez de ficar no host, você já teria avançado bastante em torná-lo portátil. Posso dar uma olhada depois de terminar outros projetos. Não sou especialista em containers também, mas já construí alguns. A desvantagem, no entanto, é que não há documentação de instalação disponível, certo? É só: “aqui está, basta executar este script”. Posso tentar replicar o que o script faz, mas isso não deixa muito espaço para sugestões de melhoria.
Então, se a comunidade, especialmente as pessoas envolvidas de perto e que têm informações internas sobre como a instalação deve funcionar, estiverem dispostas a aconselhar/ajudar, então estou disposto a iniciar essa iniciativa. Caso contrário, a qualidade não será o que você deseja ver.
Os objetivos seriam mais ou menos:
- Um Dockerfile que tenha uma construção atômica da configuração (sem bootstrap local fora do container)
- Nenhuma necessidade de executar o container como root; o ideal é usar fakeroot e adicionar capacidades (esses são argumentos de linha de comando; as pessoas ainda podem optar por iniciar um container como root…)
- Criar um script de entrypoint que possa ser influenciado por variáveis de ambiente, que devem ser claramente documentadas
podman-generate-systemdou algo similar pode ser usado para criar uma unidade systemd para (re)iniciar um container ou iniciar um container na inicialização (recurso do Podman; talvez o Docker tenha algo similar, mas é mais sobre integrar isso)
Isso seria para a instalação básica. Para uma solução escalável, é necessária uma solução docker-compose e Kubernetes. O que, francamente, não considero responsabilidade da comunidade Discourse encontrar uma solução que sirva para todos. Porque essas coisas podem ser muito bem adaptadas, especialmente no Kubernetes. Então, acho que uma solução compose básica seria suficiente para colocar as pessoas em dia.
Isso fornecerá uma solução portátil e mais segura, aumentando a adoção e a qualidade no geral. Enquanto isso, vou verificar se o Discourse é realmente algo que preciso para minha comunidade. Se for, usarei um sistema Ubuntu LTS por enquanto. Assim que tiver mais tempo, investirei tempo em tal configuração.