Ricostruzione fallita a causa di incompatibilità delle gemme ruby

Nota: Ho chiamato il mio container containers/polyf.yml
discourse-doctor non lo gestisce affatto…

$ ./launcher rebuild polyf
...
I, [2023-04-06T09:50:45.464717 #1]  INFO -- : cd /var/www/discourse & su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test development'
[DEPRECATED] The `--deployment` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set --local deployment 'true'`, and stop using this flag
[DEPRECATED] The `--without` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set --local without 'test development'`, and stop using this flag
Bundler::PathError: The path `/var/www/discourse/vendor/bundle/ruby/2.7.0/bundler/gems/sprockets-f4d3dae71ef2` does not exist.
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/source/path.rb:209:in `load_spec_files'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/source/git.rb:205:in `load_spec_files'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/source/path.rb:107:in `local_specs'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/source/git.rb:172:in `specs'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/lazy_specification.rb:82:in `materialize_for_installation'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/spec_set.rb:195:in `map!'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/spec_set.rb:195:in `specs_for_dependency'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/spec_set.rb:33:in `block in for'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/spec_set.rb:22:in `loop'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/spec_set.rb:22:in `for'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/spec_set.rb:79:in `materialize'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/definition.rb:209:in `missing_specs'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/definition.rb:213:in `missing_specs?'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/installer.rb:255:in `resolve_if_needed'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/installer.rb:82:in `block in run'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/process_lock.rb:12:in `block in lock'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/process_lock.rb:9:in `open'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/process_lock.rb:9:in `lock'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/installer.rb:71:in `run'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/installer.rb:23:in `install'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/cli/install.rb:62:in `run'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/cli.rb:260:in `block in install'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/settings.rb:131:in `temporary'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/cli.rb:259:in `install'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/cli.rb:34:in `dispatch'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/cli.rb:28:in `start'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/exe/bundle:45:in `block in <top (required)>'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/exe/bundle:33:in `<top (required)>'
  /usr/local/bin/bundle:25:in `load'
  /usr/local/bin/bundle:25:in `<main>'
Bundler::InstallError: sass-embedded-1.60.0-x86_64-linux requires rubygems version >= 3.3.22, which is incompatible with the current version, 3.3.20
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/installer.rb:237:in `block in ensure_specs_are_compatible!'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/spec_set.rb:155:in `each'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/spec_set.rb:155:in `each'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/installer.rb:231:in `ensure_specs_are_compatible!'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/installer.rb:83:in `block in run'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/process_lock.rb:12:in `block in lock'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/process_lock.rb:9:in `open'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/process_lock.rb:9:in `lock'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/installer.rb:71:in `run'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/installer.rb:23:in `install'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/cli/install.rb:62:in `run'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/cli.rb:260:in `block in install'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/settings.rb:131:in `temporary'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/cli.rb:259:in `install'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/cli.rb:34:in `dispatch'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/cli.rb:28:in `start'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/exe/bundle:45:in `block in <top (required)>'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.4.4/exe/bundle:33:in `<top (required)>'
  /usr/local/bin/bundle:25:in `load'
  /usr/local/bin/bundle:25:in `<main>'
I, [2023-04-06T09:50:56.916061 #1]  INFO -- : Running `bundle install --deployment --jobs 4 --retry 3 --verbose --without "test" "development"` with bundler 2.4.4
Frozen, using resolution from the lockfile
The definition is missing dependencies, failed to resolve & materialize locally (https://github.com/rails/sprockets (at 3.x@f4d3dae) is not yet checked out. Run `bundle install` first.)
Frozen, using resolution from the lockfile
...
2023-04-06 09:50:56.935 UTC [47] LOG:  shutting down
2023-04-06 09:50:56.970 UTC [43] LOG:  database system is shut down
104:M 06 Apr 2023 09:50:57.012 # User requested shutdown...
104:M 06 Apr 2023 09:50:57.012 * Saving the final RDB snapshot before exiting.
104:M 06 Apr 2023 09:50:57.036 * DB saved on disk
104:M 06 Apr 2023 09:50:57.036 # Redis is now ready to exit, bye bye...


FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test development' failed with return #<Process::Status: pid 367 exit 5>
Location of failure: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"bundle_exec", "cmd"=>["su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test development'"]}
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.
82f1cada0a0c138a0834f1682f3475590d0e28f179b243c4f0d54ae7043515bb

In qualche modo hai ruby 2.7.0 dove io ho ruby 3.2.0. Forse potresti mostrare il tuo log completo - qualcosa non è stato aggiornato. La sequenza usuale è

cd /var/discourse
git pull
./launcher rebuild app

(anche se nel tuo caso, non app, ma polyf)

In un thread vicino:

4 Mi Piace

Eseguo Debian [stable] (attualmente è la versione 11, nome in codice bullseye), per la quale il pacchetto ruby standard è la versione 2.7.0: Debian -- Details of package ruby in bullseye

Sono un po’ sorpreso che sia necessario git pull, considerando che ./launcher lo fa già durante la ricostruzione:

Tuttavia, sto provando ora con un precedente git pull, che ha effettivamente ottenuto alcune modifiche, quindi non sono sicuro di capire perché il launcher abbia ottenuto quelle… Beh, vedrò come va e ti farò sapere.

1 Mi Piace

Penso che sia la versione di Ruby all’interno del container Docker che conta, e quella dovrebbe essere corretta se l’immagine è stata aggiornata come avrebbe dovuto essere. Se stai eseguendo qualcosa di diverso da tests-passed, la tua immagine potrebbe essere più vecchia, nel qual caso il problema potrebbe essere un’incompatibilità con un plugin troppo nuovo. In tal caso, commentare i tuoi plugin può restringere quale sia incompatibile con il tuo Discourse intenzionalmente vecchio.

3 Mi Piace

Forse ti trovi in uno stato git “sporco” o nel vecchio branch master?

2 Mi Piace

Con il ‘git pull’, la ricompilazione ha funzionato a meraviglia.

@Falco, ero effettivamente nel vecchio branch master. Ora sono nel nuovo branch main… Non posso dire esattamente dove sia successo, è molto probabile che un’esecuzione ripetuta di launcher l’abbia fatto di nascosto (vedo del codice lì che fa il cambio se ti trovi in master).

Ah beh, chiamerò questo aggiornamento “magia” e non mi preoccuperò oltre, perché ora la mia istanza di discourse è felicemente attiva e funzionante.

Grazie per il supporto (morale, se non altro), ragazzi!

2 Mi Piace

Un dato, tra l’altro, è che sono passato dalla versione 2.9.0.beta9. Forse questo fa la differenza…

1 Mi Piace

Penso che questo ci dica di cosa si tratta il git pull: aggiorna il launcher stesso, prima che tu lo esegua. Non lo sapevo.

1 Mi Piace

@JammyDodger, grazie. Non avevo ancora scoperto il pulsante “Soluzione”.

[prendo nota]

1 Mi Piace

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.