更新十年老站遇到麻烦

嗯。我想我遇到了类似的问题。正在运行一个已有 10 年 (!) 的 Discourse 实例,从未迁移过,并且更新一直不规律:slight_smile:

今天尝试通过仪表板更新 Docker Manager,现在在浏览器控制台中看到以下内容,当尝试渲染管理员设置(特别是“尝试禁用一些前端组件”消息生成的“自定义”链接)时:

loader.js:247 Uncaught (in promise) Error: Could not find module `discourse/lib/decorators` imported from `discourse/plugins/docker_manager/discourse/routes/update`

在 CLI 上重建时出现 PUPS 错误:

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'yarn config set network-timeout 60000 -g' failed with return #<Process::Status: pid 280 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.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 config set network-timeout 60000 -g'", "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.

引导程序中没有其他明显错误。这是一个单容器安装……有什么办法能让我摆脱困境吗?网站目前仍然可以访问,但状态很糟糕。

哦等等,PUPS 错误可能源于此:

error 此项目的 package.json 定义了 \"packageManager\": \"yarn@pnpm@9.15.5\"。但是,当前全局的 Yarn 版本是 1.22.22。

这到底是怎么回事……

您最终解决问题了吗?将备份恢复到新服务器可能对您来说是最好的选择,而不是纠缠于旧的设置。

弄明白了!一年前我们为了修复主分支中的一个bug,手动 cherry-pick 了一个 commit,而 Docker 更新管理器插件非常不喜欢这样做(它可能没有检查分离的 git 头),这导致了部署失败。最终在服务器上执行 git reset –hard && ./launcher rebuild app 就解决了问题,但在此期间非常令人困惑 :slight_smile:

4 个赞