Ошибка настройки с отдельным Redis

В локальной сети работает полупрогульный сервер базы данных PostgreSQL, и я хотел бы использовать его также для Discourse. Причина в том, что веб-сервер испытывает гораздо большую нагрузку, чем упомянутый выше сервер базы данных, у которого ещё много неиспользуемых ресурсов и потенциала. Перенаправление PostgreSQL для Discourse оказалось довольно простым: достаточно было следовать нескольким темам на этом форуме (пример). Однако при попытке сделать то же самое для Redis:

  • закомментировать строку - "templates/redis.template.yml"
  • вместо этого установить переменную DISCOURSE_REDIS_HOST

я всегда получаю следующую ошибку:

Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 582 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1

при каждой попытке пересобрать приложение с помощью команды launcher rebuild app.

Это известная проблема? Кто-нибудь успешно запускал Discourse с Redis, не работающим в контейнере?

Вам действительно нужно только это. Можете ли вы показать полную ошибку пересборки? Скорее всего, вам потребуется пароль, обязательное TLS-шифрование или домен недоступен. Это должно быть ясно из лога пересборки.

Вот, по сути, всё. Выше в логе есть несколько предупреждений:

warning " > @mixer/parallel-prettier@2.0.3" has unmet peer dependency "prettier@^2.0.0".
warning "eslint-config-discourse > eslint-plugin-lodash@7.1.0" has unmet peer dependency "lodash@>=4".
warning " > babel-plugin-debug-macros@0.4.0-pre1" has unmet peer dependency "@babel/core@^7.0.0".
warning "workspace-aggregator-3fff36d0-9fd8-4d1a-ac4c-d10694a59627 > discourse > @uppy/aws-s3@3.0.6" has incorrect peer dependency "@uppy/core@^3.1.2".
warning "workspace-aggregator-3fff36d0-9fd8-4d1a-ac4c-d10694a59627 > discourse > @uppy/aws-s3-multipart@3.1.3" has incorrect peer dependency "@uppy/core@^3.1.2".
warning "workspace-aggregator-3fff36d0-9fd8-4d1a-ac4c-d10694a59627 > discourse > @uppy/xhr-upload@3.1.1" has incorrect peer dependency "@uppy/core@^3.1.2".

Но они появляются даже при пересборке с Redis в контейнере.

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 581 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1
** 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.
2533af220cc44d8c77bc12c17ed7635dee49ba7f280[…]

ОБНОВЛЕНИЕ:

Нашёл строки, помеченные как INFO, а не как ошибки, и, думаю, именно в этом причина:

I, [2023-04-06T18:44:02.460059 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all'
I, [2023-04-06T18:44:04.581741 #1]  INFO -- : docker_manager is already at latest compatible version

I, [2023-04-06T18:44:04.581929 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
Discourse requires Redis 6.2.0 or up
I, [2023-04-06T18:44:05.937604 #1]  INFO -- :

А довольно свежий Ubuntu 22.04.2 LTS предоставляет:

Package: redis-server
Architecture: amd64
Version: 5:6.0.16-1ubuntu1

Аргх.. Никаких шансов использовать эту версию, верно?

Я считаю, что Discourse использует некоторые команды Redis, которые были введены только в версии 6.2.

Вы также можете установить его, используя официальный APT-репозиторий Redis:

https://redis.io/docs/getting-started/installation/install-redis-on-linux/

Да, я делаю именно это, спасибо. Жаль только, что это сообщение было помечено как ERROR, а не как INFO (среди множества других INFO), и процесс сразу остановился. Я потратил много времени на отладку самых разных вещей, не обратив внимания на эту строку.

Redis не потребляет много ресурсов, и вы не можете использовать его совместно с несколькими серверами. Я бы просто использовал тот, что уже работал для Discourse.