Движок "yarn" несовместим с этим модулем. Ожидаемая версия "please-use-pnpm", получена "1.22.19"

После получения уведомления о доступности обновления я, как обычно, зашел в веб-интерфейс и нажал кнопку обновления.

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

Я использую отдельные образы для данных и веб-части, все через Docker.

Мой обычный скрипт ручной пересборки, который обычно исправляет это, выглядит так:

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

При запуске этого скрипта происходит сбой с сообщением:

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

Я не могу найти никаких совпадений с этой ошибкой, и любые попытки сброса или обновления образа discourse-base не дают результата — всё падает именно на этом этапе.

Есть ли способ снова запустить систему?

Для справки, похоже, что обновление в discourse/base:2.0.20250129-0720 исправило эту проблему.

Привет @CRCinAU, я относительно новый пользователь Discourse. Не могли бы вы предоставить немного больше информации о том, где именно нужно внести изменения?

Спасибо.

Также убедитесь, что вы обновляете последнюю копию discourse_docker в /var/discourse. Команда ./launcher rebuild, используемая при стандартной установке, делает это автоматически. Но если вы используете собственный скрипт, вам нужно будет сделать это самостоятельно.

Вы видите ту же ошибку? Если да, пожалуйста, сообщите, какие шаги вы выполняете, и какую ошибку наблюдаете.

Да — мне пришлось выполнить git pull в /var/discourse/

Пересборка, похоже, не сделала git pull, поэтому использовались старые сборщики и т.д.