Le moteur "yarn" est incompatible avec ce module. Version attendue "please-use-pnpm". Obtenu "1.22.19"

Après avoir reçu une notification indiquant qu’une mise à jour était disponible, je suis allé sur l’interface web comme d’habitude et j’ai appuyé sur le bouton de mise à jour.

Dans le style classique de Discourse, l’installation s’est autodétruite et je n’arrive pas à reconstruire les images pour qu’elles fonctionnent.

J’utilise des images de données et web séparées, le tout via Docker.

Mon script de reconstruction manuel qui résout normalement ce problème est :

./launcher bootstrap discourse-web && ./launcher destroy discourse-web && ./launcher start discourse-web

Lorsque j’exécute cela, cela échoue avec :

I, [2025-02-05T01:12:54.160568 #1]  INFO -- : > cd /var/www/discourse && gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock)
I, [2025-02-05T01:12:55.503875 #1]  INFO -- : Successfully installed bundler-2.5.18
1 gem installed

I, [2025-02-05T01:12:55.503987 #1]  INFO -- : > cd /var/www/discourse && find /var/www/discourse ! -user discourse -exec chown discourse {} +
I, [2025-02-05T01:12:56.681293 #1]  INFO -- : 
I, [2025-02-05T01:12:56.681583 #1]  INFO -- : > cd /var/www/discourse && if [ "beta" != "tests-passed" ]; then
  rm -rf app/assets/javascripts/node_modules
fi
I, [2025-02-05T01:12:56.685171 #1]  INFO -- : 
I, [2025-02-05T01:12:56.685238 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
error discourse@: The engine "yarn" is incompatible with this module. Expected version "please-use-pnpm". Got "1.22.19"
warning discourse@: The engine "pnpm" appears to be invalid.
error Found incompatible module.
I, [2025-02-05T01:12:57.086009 #1]  INFO -- : yarn install v1.22.19
info No lockfile found.
[1/5] Validating package.json...
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.


FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'yarn install --frozen-lockfile && yarn cache clean' failed with return #<Process::Status: pid 202 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"yarn", "cmd"=>["if [ \"$version\" != \"tests-passed\" ]; then\n  rm -rf app/assets/javascripts/node_modules\nfi", "su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'"]}
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.
d480e23784a1dd765d52d483ee94174d7d5cfad5ba8ccec61e76a48ac8ddf32a

Je ne trouve aucune correspondance à cette erreur, et toute réinitialisation / récupération de l’image discourse-base ne semble faire aucune différence - tout échoue ici.

Y a-t-il un moyen de remettre les choses en marche ?

1 « J'aime »

Pour information, il semble que la mise à jour dans discourse/base:2.0.20250129-0720 ait résolu ce problème.

Salut @CRCinAU, je suis relativement nouveau sur Discourse. Peux-tu me donner un peu plus d’informations sur l’endroit où nous devons mettre à jour le changement ?

Merci.

[quote=“CRCinAU, post:1, topic:350557”]
Mon script de reconstruction manuelle qui corrige normalement cela est :

./launcher bootstrap discourse-web && ./launcher destroy discourse-web && ./launcher start discourse-web

[/quote]Vous devez vous assurer que vous récupérez également la dernière copie de discourse_docker dans /var/discourse. La commande ./launcher rebuild utilisée dans l’installation standard s’en charge automatiquement. Mais si vous utilisez un script personnalisé, vous devrez le faire vous-même.

[quote=“Zecos22, post:3, topic:350557, username:Abinav_22”]
Pouvez-vous me donner un peu plus d’informations sur l’endroit où nous devons mettre à jour le changement ?
[/quote]Voyez-vous la même erreur ? Si oui, veuillez nous indiquer les étapes que vous suivez et l’erreur que vous voyez.

Oui - j’ai dû faire un git pull dans /var/discourse/
La reconstruction pour moi ne semblait pas faire de git pull, donc elle utilisait toujours les anciens constructeurs, etc.

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