Проблема с изменением учетных данных SMTP

Версия Discourse: v3.2.0 stable
В настоящее время мы мигрируем на нового поставщика услуг электронной почты. Чтобы завершить этот переход, необходимо обновить учетные данные SMTP в файле app.yaml. После обновления учетных данных нужно пересобрать контейнер, чтобы изменения вступили в силу.

cd /var/discourse/
./launcher rebuild app

Проблема заключается в том, что пересборка завершается ошибкой.

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:/#

На основе логов я выявил две возможные причины:
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
  • В другой ветке я видел, что эту ошибку можно игнорировать. Это не настоящая проблема.

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
  • Похоже, что мы не используем требуемую версию Ruby.

Я прикрепил полный лог, если вы хотите взглянуть на него внимательнее.
AWS Emails Restart Discourse VM Log 1.txt (39.8 KB)

Один из возможных вариантов — перейти на последнюю стабильную версию, однако в данный момент это невозможно.

Поскольку обновление версии сейчас не рассматривается, какие еще варианты у нас есть? Можно ли выполнить пересборку без обновления скрипта настройки? Не уверен, решит ли это проблему.

Возможно ли задать учетные данные SMTP как переменные окружения?

Любая помощь будет очень кстати.

Спасибо

Вместо пересборки, если вы не выполняли обновлений из UX, вы можете

./launcher destroy app;./launcher start app

чтобы применить новые настройки SMTP.