Atualizações de produção - procedimento correto a seguir

Olá,

Estou prestes a atualizar nosso servidor de produção do Discourse (que hospedamos nós mesmos na EC2, conforme as instruções oficiais de instalação) e gostaria de confirmar a abordagem recomendada.

Não temos o botão de atualização habilitado na interface, portanto, a atualização será realizada na instância da EC2. Agora, acredito que existem duas principais maneiras de fazer isso:

  • Recriar nosso servidor EC2, que baixará uma cópia fresca do repositório GitHub discourse_docker e utilizará os modelos disponíveis, ou seja, o web.template.yml atualmente referencia a imagem base discourse/base:2.0.20260209-1300. Essa abordagem removerá o servidor em execução atual e iniciará o novo.
  • Fazer login no servidor EC2 existente e executar os seguintes comandos para recriar a imagem atual e reiniciar o contêiner:
    • ./launcher rebuild app

Tenho duas perguntas:

  1. Qual abordagem deve ser usada para manutenção normal?
  2. Se executarmos o comando rebuild app, isso ainda baixa a branch main do repositório discourse_docker?

Li o site https://releases.discourse.org e posso ver que a versão 2026.3.0 ainda não foi lançada. Minha compreensão é que não devemos usar as versões mais recentes da branch main de um lançamento em produção, pois elas ainda estão em desenvolvimento ativo.

Qualquer ajuda será muito apreciada. Obrigado.

Se você deseja atualizar para a versão mais recente, basta realizar a atualização manualmente no painel de administração.
Se deseja atualizar para a versão esr, basta especificar esr no final do arquivo containers/app.yml

params:
  version: esr

Em seguida, reconstrua o projeto.

Certifique-se de que a rede está funcionando corretamente.

1 curtida

Obrigado pela resposta.

Ao definir a versão como esr, isso substitui a imagem base utilizada nos modelos?

Não queremos que a atualização seja habilitada na interface de administração, então precisaremos de uma maneira de fazer isso na instância ou simplesmente reconstruindo a instância e permitindo que nosso AutoScaler gerencie isso.

Se usarmos esr, como ela será atualizada quando uma correção crítica for lançada? Novamente, devemos simplesmente reconstruir via launcher/nova instância EC2 mensalmente para incorporar quaisquer atualizações da versão esr?

Você leu Understanding Discourse release channels e Configure a supported tracking branch to get Discourse software updates? Eu descreveria a diferença mais como ter acesso às mudanças mais recentes imediatamente ou recebê-las um pouco depois. A última opção pode ser muito útil para desenvolvimentos personalizados que precisam ser adaptados primeiro. Caso contrário, eu preferiria acesso aos recursos e correções mais recentes. Claro, isso carrega o risco de novos bugs, mas a versão que foi congelada há três semanas também contém bugs que podem já ter sido corrigidos na versão mais recente, embora geralmente não sejam significativos o suficiente para justificar o backport para o último lançamento.

Lembre-se também de que o downgrade não é suportado; portanto, se você estiver em uma versão posterior ao ESR atual, precisará aguardar a publicação do próximo ESR.

1 curtida

Se você estiver em uma versão significativamente antiga no momento, pode se beneficiar de um git pull antes do comando do launcher.

Ah, eu perdi a postagem Configure a supported tracking branch to get Discourse software updates.

Pelas respostas até agora, acho que usarei a branch release, já que fazemos uma atualização mensal.

Muito obrigado por isso.

1 curtida