Errore durante l'impostazione con Redis separato

C’è un server di database semi-pigro che esegue PostgreSQL all’interno della rete locale e volevo usarlo anche per Discourse. Il motivo è che il server web è molto più stressato di quello del database menzionato in precedenza, che ha ancora molte risorse/potenziale inutilizzate. Reindirizzare il PostgreSQL di Discourse è stato piuttosto facile, seguendo alcuni thread su questo forum (esempio). Tuttavia, ogni volta che provo a fare lo stesso per Redis:

  • commentando - "templates/redis.template.yml"
  • impostando invece DISCOURSE_REDIS_HOST

ottengo sempre:

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

ogni volta che provo a ricostruire con launcher rebuild app

È un problema noto? Qualcuno è riuscito a eseguire Discourse con Redis non containerizzato?

Questo è tutto ciò di cui hai bisogno. Puoi incollare l’errore completo della ricostruzione? Probabilmente hai bisogno di una password, TLS obbligatorio o un dominio irraggiungibile. Quale di questi dovrebbe essere chiaro nel log di ricostruzione.

1 Mi Piace

Questo è praticamente tutto. Ci sono alcuni avvisi più in alto nel log:

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".

ma ci sono anche quando si ricostruisce con Redis containerizzato.

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[...]

AGGIORNAMENTO:

Ho trovato delle righe contrassegnate come INFO invece che come errore e questo potrebbe essere il motivo, immagino:

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

E il freschissimo Ubuntu 22.04.2 LTS fornisce:

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

Argh… nessuna possibilità di usare questa versione, vero?

Credo che Discourse utilizzi alcuni comandi Redis che sono stati introdotti solo con la versione 6.2.

Puoi anche installarlo utilizzando il repository APT ufficiale di Redis:

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

3 Mi Piace

Sì, è esattamente quello che sto facendo, grazie. Vorrei solo che quel messaggio fosse contrassegnato come ERRORE anziché INFO (tra molti altri INFO), e che si fermasse subito. Ho perso molto tempo a fare il debug di ogni sorta di cose senza notare questa riga.

Redis non utilizza molte risorse e non è possibile condividerlo con più server. Utilizzerei semplicemente quello di discourse che funzionava già.