Alterando nome do host

Eu exportei uma versão um pouco antiga do container do Discourse e os arquivos docker do Discourse de uma instância em execução e os importei em um servidor diferente.
Preciso alterar o DISCOURSE_HOSTNAME: para corresponder ao novo servidor.

  • Existe uma maneira de tornar o novo DISCOURSE_HOSTNAME: eficaz sem uma reconstrução?
  • Se eu precisar reconstruir, isso buscará a versão mais recente do branch main e substituirá a versão atual que tenho? porque preciso executar exatamente a versão atual.

Olá Islam :slight_smile:

Pelo que sei, não.

Sim, irá.

Você pode encontrar informações relacionadas aqui para o que deseja alcançar: Search results for 'install version discourse' - Discourse Meta

Você precisaria alterar coisas na configuração do Let’s Encrypt, que é (pelo menos em parte) o motivo pelo qual você precisa reconstruir.

Por que não atualizar? É isso que você realmente precisa fazer. Quão antigo ele é?

Mas você poderia se arranjar para fixar discourse_docker (também conhecido como /var/discourse e a versão do Discourse em que você está. Você também pode precisar fixar todos os plugins.

Se você tem outra coisa fazendo a resolução https, então você pode ser capaz de evitar a reconstrução e apenas fazer as outras coisas em Change the domain name or rename your Discourse.

Preciso ter a mesma versão naquela instância para testar a atualização para a versão mais recente, para que, se for bem-sucedido, realizarei a atualização em produção.

Se você tem outra coisa fazendo a resolução https, talvez consiga evitar a reconstrução e apenas fazer as outras coisas em Alterar o nome do domínio ou renomear seu Discourse.
O HTTPS é tratado em um balanceador de carga, mas esse link diz que preciso reconstruir após modificar o app.yml.

  • Então, se eu fixar as versões, para discourse_docker, devo fazer o checkout do hash de commit atual?
  • E para o aplicativo Discourse dentro do contêiner, também devo definir seu hash de commit atual usando version: <hash_de_commit> em app.yml?
  • E quanto aos plugins?

É uma boa aposta que, se você instalar a versão atual no servidor de teste e restaurar o banco de dados nele, poderá atualizar o servidor de produção.

O que você está propondo provavelmente levará várias horas de trabalho, tem um monte de pequenas partes confusas que serão muito difíceis de descrever em um fórum, e não provará nada que restaurar o banco de dados de produção para o novo servidor não fará.

Apenas aponte o servidor de staging e o servidor de produção para o mesmo bucket de backup S3, faça backup da produção e restaure-o no servidor de staging. Daqui para frente, eles estarão em paridade e você poderá atualizar o staging e a produção em rápida sucessão.

1 curtida

Acionei uma reconstrução, mas foi o que obtive:

I, [2023-04-07T19:17:58.707365 #1]  INFO -- : cd /var/www/discourse & gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock)
ERROR:  Could not find a valid gem 'bundler' (= 2.3.4), here is why:
          Unable to download data from https://rubygems.org/ - Net::OpenTimeout: execution expired (https://rubygems.org/specs.4.8.gz)

No entanto, consigo fazer curl em rubygems.org a partir do host.

Alguma sugestão sobre o erro acima?

Você fez uma reconstrução pela linha de comando? Esta é uma instalação padrão?

Sim, o comando de reconstrução e também a atualização iniciada pela GUI deram o mesmo erro.

Retentando o fetcher devido a erro (4/4): Bundler::HTTPError Não foi possível buscar especificações de https://rubygems.org/ devido a erro subjacente <Net::OpenTimeout: execution expired (https://rubygems.org/specs.4.8.gz)>

Ocorreu um erro ao instalar a versão bloqueada do bundler (2.4.4), execute novamente com a flag --verbose para mais detalhes. Continuando a usar o bundler 2.3.6.
Buscando índice de origem de https://rubygems.org/

Não foi possível buscar especificações de https://rubygems.org/ devido a erro subjacente
<Net::OpenTimeout: execution expired (https://rubygems.org/specs.4.8.gz)>
Docker Manager: FALHA AO ATUALIZAR