Estou executando o Discourse no AWS ECS. Ao tentar executar o aplicativo, a aba do console no navegador está falhando com as URLs abaixo. Será que perdi alguma alteração de configuração?
Fiz o deploy do Discourse no ECS usando Docker. Ao tentar acessar o aplicativo, o navegador está buscando recursos nas URLs abaixo em vez de https://discuss-stage.tllms.com/.
Eu apostaria minha sorte em um CDN mal configurado.
Você pode compartilhar seu config/discourse.conf?
E procure em suas configurações do site por c0fbtc e veja se há resultados.
Isso não parece correto. Se eu fosse você, verificaria se meu banco de dados não era realmente local e tem um nome estranho.
Acho que deveria ficar assim:
# endereço do host para o servidor de banco de dados
# Isso está definido como em branco para que ele tente usar sockets primeiro
db_host = discourse-test.c0fbtc1q6bvm.ap-south-1.rds.amazonaws.com
# nome do banco de dados executando o Discourse
db_name = default
(Devo avisá-lo sobre tentar reinventar uma roda que já funciona perfeitamente. Além disso, algumas pessoas por aqui não estarão muito entusiasmadas em apoiá-lo, já que isso não beneficia a comunidade).
Independentemente do que fizer, eventualmente você deve garantir que esses valores sejam corretamente aplicados no seu discourse.conf. Se você o editou manualmente, deve, no mínimo, colocar o nome de host da AWS em db_host e deixar db_name como default.
Estou na mesma equipe que o Vijay. O caso de uso específico que estamos tentando abordar aqui é fazer um fork do Discourse e colocá-lo no GitHub da nossa empresa. A partir daí, construiríamos e implementaríamos na AWS. O motivo de querer ter isso no nosso GitHub é manter a flexibilidade de fazer alterações conforme nossas necessidades. Gostaríamos de contribuir de volta sempre que aplicável. Como não conseguimos encontrar um Dockerfile no repositório público do Discourse, acabamos criando o nosso próprio para construir a imagem do Docker. Além disso, usamos o GitHub Actions para implantar o Docker no serviço ECS da AWS.
Considerando nossa necessidade, você acha que poderíamos ter adotado alguma outra abordagem?
Sim. Minha recomendação é usar os repositórios oficiais do Discourse e do discourse_docker e implementar todas as alterações como plugins.
Usar o discourse_docker oficial evitará problemas como o deste tópico. Além disso, não fazer um fork do Discourse, mantendo todas as suas modificações em plugins separados, evita que você se afaste da branch principal e economiza muito esforço ao precisar portar todas as alterações upstream de volta para seu fork.
A curva de aprendizado no desenvolvimento de plugins se paga em poucas semanas em comparação ao esforço de mesclar atualizações upstream e, a partir daí, o processo se torna ainda mais eficiente.
Ao usar o repositório oficial do Discourse, você também pode considerar hospedagem gerenciada, e as pessoas tendem a ser mais entusiastas (e/ou cobrar menos) quando precisam ajudá-lo.
Obrigado pelas suas contribuições. Tenho algumas perguntas de acompanhamento:
Com a abordagem de plug-in, existe a possibilidade de encontrarmos um gargalo em alguns requisitos que não possam ser atendidos por meio de plug-ins? Por exemplo, gerenciar funções de usuário de maneira altamente personalizada?
Como seria o pipeline de ponta a ponta se utilizássemos o discourse_docker e o implantássemos em nossa conta da AWS no ECS? Como mencionei, atualmente usamos o GitHub Actions para implantar na ECS em nossa conta da AWS. Que estratégia de implantação podemos usar a partir do repositório público, mantendo a proteção das nossas credenciais da AWS?
Sempre comece com uma cópia do repositório discourse_docker. Crie um arquivo app.yml nele.
Use o subcomando bootstrap do script launcher na sua cópia local do discourse_docker para criar uma imagem Docker. Envie a imagem Docker para um repositório Docker. Implante essa imagem Docker onde desejar.
Crie plugins se necessário. Liste seus plugins personalizados no app.yml assim como os outros plugins.
@ashish_rawat@Vijay_Vantipalli Como vocês configuraram o Discourse Docker no ECS? Quando tento no servidor EC2, o Discourse carrega normalmente. Mas, ao enviar a imagem Docker do Discourse para o registro ECR e criar uma tarefa a partir dessa imagem, o contêiner não inicia — recebo apenas o código de saída 1. Estou travado nisso há mais de uma semana. Gostaria muito de ouvir suas sugestões. Obrigado!
Criei uma instância RDS separada e um cluster ElastiCache para Redis para isso.