Versão do Discourse: v3.2.0 stable
Atualmente estamos migrando para um novo provedor de serviços de e-mail. Para concluir essa transição, precisamos atualizar as credenciais SMTP no arquivo app.yaml. Após atualizar as credenciais, precisamos reconstruir o contêiner para que as alterações entrem em vigor.
cd /var/discourse/
./launcher rebuild app
O problema é que a reconstrução está falhando.
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle install --jobs $(($(nproc) - 1)) --retry 3' failed with return #<Process::Status: pid 530 exit 5>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"bundle_exec", "cmd"=>["su discourse -c 'bundle install --jobs $(($(nproc) - 1)) --retry 3'"]}
bootstrap failed with exit code 5
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
b0b1f4d0ed01a9bf5b9037585a4b0416b4b4efa2b8e67557ced3d7507380ad0d
root:/#
Com base nos logs, identifiquei duas causas potenciais:
1
2024-10-14 12:39:33.606 UTC [55] postgres@postgres ERROR: database "discourse" already exists
2024-10-14 12:39:33.606 UTC [55] postgres@postgres STATEMENT: CREATE DATABASE discourse;
createdb: error: database creation failed: ERROR: database "discourse" already exists
2024-10-14 12:39:33.728 UTC [58] postgres@discourse ERROR: role "discourse" already exists
2024-10-14 12:39:33.728 UTC [58] postgres@discourse STATEMENT: create user discourse;
ERROR: role "discourse" already exists
- Eu vi em outro tópico que esse erro pode ser ignorado. Não é um problema real.
2
I, [2024-10-14T12:41:56.391691 #1] INFO -- : > cd /var/www/discourse & su discourse -c 'bundle install --jobs $(($(nproc) - 1)) --retry 3'
google-protobuf-3.25.2-x86_64-linux requires ruby version < 3.3.dev, >= 2.7,
which is incompatible with the current version, 3.3.4
- Parece que não estamos usando a versão do ruby necessária.
Anexei o log completo caso queira dar uma olhada melhor.
AWS Emails Restart Discourse VM Log 1.txt (39.8 KB)
Uma possível solução é migrar para a versão estável mais recente, no entanto, isso não é viável no momento.
Com a atualização de versão fora de questão, quais outras opções temos? É possível reconstruir sem atualizar o script de configuração? Não tenho certeza se isso resolveria o problema.
É possível definir as credenciais SMTP como variáveis de ambiente?
Qualquer ajuda é muito apreciada.
Obrigado