Ruby 3.2 语法在标准安装中出错

我在从浏览器进行标准升级时,遇到了与 这条消息 中相同的错误。不过,错误发生在 plugin:pull_compatible_allmultisite:migrate 操作期间,而不是资产预编译阶段。

错误信息如下:

SyntaxError: /var/www/discourse/lib/file_store/base_store.rb:96: syntax error, unexpected ','
      download(*, **, print_deprecation: false)

以下是从浏览器 UI 中复制的完整升级日志:

********************************************************
*** 请耐心等待,接下来的步骤可能需要一些时间 ***
********************************************************
正在循环 Unicorn 以释放内存
正在重启 Unicorn,进程 ID:559
等待 Unicorn 重新加载。
等待 Unicorn 重新加载..
等待 Unicorn 重新加载...
等待 Unicorn 重新加载....
等待 Unicorn 重新加载.....
等待 Unicorn 重新加载......
等待 Unicorn 重新加载.......
等待 Unicorn 重新加载........
正在停止 1 个 Unicorn 工作进程以释放内存
正在停止作业队列以回收内存,主进程 ID 为 15009
$ cd /var/www/discourse && git fetch --tags --force && git reset --hard HEAD@{upstream}
正在使用 openssl-signature_algorithm 1.2.1
正在使用 aws-sigv4 1.5.0
正在使用 faraday 2.7.2
正在使用 image_optim 0.31.2
正在使用 request_store 1.5.1
正在使用 logstash-logger 0.26.1
正在使用 message_bus 4.3.1
正在使用 mini_racer 0.6.3
正在使用 sidekiq 6.5.8
正在使用 mini_suffix 0.3.3
正在使用 oauth-tty 1.0.5
正在使用 snaky_hash 2.0.1
正在使用 omniauth 1.9.2
正在使用 pry 0.14.2
正在使用 puma 6.0.2
正在使用 rack-mini-profiler 3.0.0
正在使用 rack-protection 3.0.5
正在使用 rbtrace 0.4.14
正在使用 redis-namespace 1.9.0
正在使用 rqrcode 2.1.2
正在使用 rss 0.2.9
正在使用 sassc 2.0.1
正在使用 sprockets 3.7.2
正在使用 uglifier 4.2.0
正在使用 unf 0.1.4
正在使用 unicorn 6.1.0
正在使用 web-push 3.0.0
正在使用 loofah 2.19.1
正在使用 net-imap 0.3.1
正在使用 net-pop 0.1.2
正在使用 net-smtp 0.3.3
正在使用 cose 1.3.0
正在使用 css_parser 1.13.0
正在使用 ruby-readability 0.7.0
正在使用 sanitize 6.0.0
正在使用 ecma-re-validator 0.4.0
正在使用 activesupport 7.0.4.3
正在使用 rails-html-sanitizer 1.5.0
正在使用 globalid 1.0.1
正在使用 activemodel 7.0.4.3
正在使用 aws-sdk-core 3.130.2
正在使用 faraday-retry 2.0.0
正在使用 json_schemer 0.2.23
正在使用 mini_scheduler 0.15.0
正在使用 oauth 1.1.0
正在使用 oauth2 1.4.11
正在使用 pry-byebug 3.10.1
正在使用 pry-rails 0.3.9
正在使用 rails-dom-testing 2.0.3
正在使用 actionview 7.0.4.3
正在使用 activejob 7.0.4.3
正在使用 active_model_serializers 0.8.4
正在使用 activerecord 7.0.4.3
正在使用 aws-sdk-kms 1.56.0
正在使用 aws-sdk-sns 1.53.0
正在使用 omniauth-oauth2 1.7.3
正在使用 omniauth-oauth 1.2.0
正在使用 actionpack 7.0.4.3
正在使用 actionview_precompiler 0.2.3
正在使用 aws-sdk-s3 1.114.0
正在使用 discourse-seed-fu 2.3.12
正在使用 omniauth-facebook 9.0.0
正在使用 omniauth-github 1.4.0
正在使用 omniauth-google-oauth2 0.8.2
正在使用 omniauth-twitter 1.4.0
正在使用 railties 7.0.4.3
正在使用 sprockets-rails 3.4.2
正在使用 mail 2.8.0.edge,来源:https://github.com/discourse/mail.git (分支 main@5b700fc)
正在使用 lograge 0.12.0
正在使用 rails_failover 0.8.1
正在使用 rails_multisite 4.0.1
正在使用 sassc-rails 2.1.2
正在使用 actionmailer 7.0.4.3
正在安装 uri 0.12.2
正在使用 net-http 0.3.2
Bundle 完成!共 135 个 Gemfile 依赖项,现已安装 171 个 gems。
未安装 'test' 和 'development' 组中的 gems。
已安装的 Bundled gems 位于 `./vendor/bundle`
$ yarn install --production
yarn install v1.22.19
[1/5] 验证 package.json...
[2/5] 解析包...
success 已经是最新的。
$ yarn --cwd app/assets/javascripts/discourse $(node -e 'if(JSON.parse(process.env.npm_config_argv).original.includes(`--frozen-lockfile`)){console.log(`--frozen-lockfile`)}')
yarn install v1.22.19
[1/4] 解析包...
[2/4] 获取包...
[3/4] 链接依赖...
[4/4] 构建新包...
success 锁文件已保存。
耗时 8.84 秒。
耗时 9.31 秒。
$ LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all
rake 终止!
SyntaxError: /var/www/discourse/lib/file_store/base_store.rb:96: syntax error, unexpected ','
      download(*, **, print_deprecation: false)
                ^
/var/www/discourse/lib/file_store/base_store.rb:102: syntax error, unexpected ','
      download(*, **, print_deprecation: false)
                ^
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.6/lib/zeitwerk/kernel.rb:38:in `require'
/var/www/discourse/lib/file_store/local_store.rb:3:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.6/lib/zeitwerk/kernel.rb:38:in `require'
/var/www/discourse/lib/tasks/posts.rake:3:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:661:in `load'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:661:in `block in run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:661:in `each'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:661:in `run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/application.rb:506:in `run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:464:in `load_tasks'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/railtie.rb:226:in `public_send'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/railtie.rb:226:in `method_missing'
/var/www/discourse/Rakefile:9:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/bin/bundle:25:in `load'
/var/www/discourse/vendor/bundle/ruby/3.1.0/bin/bundle:25:in `<main>'
(通过运行任务时添加 --trace 查看完整堆栈跟踪)
无法检出兼容的插件版本
$ SKIP_POST_DEPLOYMENT_MIGRATIONS=1 bundle exec rake multisite:migrate
rake 终止!
SyntaxError: /var/www/discourse/lib/file_store/base_store.rb:96: syntax error, unexpected ','
      download(*, **, print_deprecation: false)
                ^
/var/www/discourse/lib/file_store/base_store.rb:102: syntax error, unexpected ','
      download(*, **, print_deprecation: false)
                ^
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.6/lib/zeitwerk/kernel.rb:38:in `require'
/var/www/discourse/lib/file_store/local_store.rb:3:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.6/lib/zeitwerk/kernel.rb:38:in `require'
/var/www/discourse/lib/tasks/posts.rake:3:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:661:in `load'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:661:in `block in run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:661:in `each'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:661:in `run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/application.rb:506:in `run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:464:in `load_tasks'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/railtie.rb:226:in `public_send'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/railtie.rb:226:in `method_missing'
/var/www/discourse/Rakefile:9:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/bin/bundle:25:in `load'
/var/www/discourse/vendor/bundle/ruby/3.1.0/bin/bundle:25:in `<main>'
(通过运行任务时添加 --trace 查看完整堆栈跟踪)
Docker Manager: 升级失败
#<RuntimeError: RuntimeError>
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:209:in `run'
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:101:in `upgrade'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:19:in `block in <main>'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `fork'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/commands/runner/runner_command.rb:43:in `load'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/commands/runner/runner_command.rb:43:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/thor-1.2.1/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/thor-1.2.1/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/thor-1.2.1/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/command/base.rb:87:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/command.rb:48:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/commands.rb:18:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
bin/rails:18:in `<main>'
正在重新启动之前停止的 1 个 Unicorn 工作进程

按照 此处 提到的方法,从控制台运行升级(git pull && ./launcher rebuild app)触发了另一个错误,但我不确定哪条错误信息是相关的:

I, [2023-07-04T08:08:49.261121 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile'
- 正在构建
- 正在构建
- 正在构建...
- 正在清理
- 正在清理
构建错误 (broccoli-persistent-filter:Babel > [Babel: @ember/test-helpers]),位于 @ember/test-helpers/-internal/build-registry.js

[BABEL]: --- 占位符包 ---
此 @babel/plugin-proposal-private-property-in-object 版本并非设计用于直接导入。有某个模块在导入
@babel/plugin-proposal-private-property-in-object,但未在其 package.json 文件的依赖项(或 devDependencies)中声明它。
请将 "@babel/plugin-proposal-private-property-in-object" 添加到您的 devDependencies 中以解决此错误。这将使该消息消失。
(处理中:/var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/index.js)
错误:[BABEL]: --- 占位符包 ---
此 @babel/plugin-proposal-private-property-in-object 版本并非设计用于直接导入。有某个模块在导入
@babel/plugin-proposal-private-property-in-object,但未在其 package.json 文件的依赖项(或 devDependencies)中声明它。
请将 "@babel/plugin-proposal-private-property-in-object" 添加到您的 devDependencies 中以解决此错误。这将使该消息消失。
(处理中:/var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/index.js)
    at Object.<anonymous> (/var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-private-property-in-object/lib/index.js:28:7)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32)
    at Module._load (node:internal/modules/cjs/loader:960:12)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at require (node:internal/modules/cjs/helpers:110:18)
    at Object.<anonymous> (/var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/available-plugins.js:62:46)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32)
    at Module._load (node:internal/modules/cjs/loader:960:12)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at require (node:internal/modules/cjs/helpers:110:18)
    at Object.<anonymous> (/var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/filter-items.js:11:25)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32)
    at Module._load (node:internal/modules/cjs/loader:960:12)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at require (node:internal/modules/cjs/helpers:110:18)
    at Object.<anonymous> (/var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/index.js:16:20)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32)
    at Module._load (node:internal/modules/cjs/loader:960:12)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at require (node:internal/modules/cjs/helpers:110:18)


堆栈跟踪和错误报告:/tmp/error.dump.5abe6326cd5a415063a7ad1c85649486.log
错误:命令执行失败,退出代码 1。
I, [2023-07-04T08:09:05.088181 #1]  INFO -- : 检查 'Video Upload' 对于 'default'... 已是最新
yarn run v1.22.19
$ /var/www/discourse/app/assets/javascripts/node_modules/.bin/ember build -prod
警告:Node v18.16.1 未经过您平台上 Ember CLI 的测试。我们建议您使用最新的“Active LTS”版本 Node.js。详见 https://git.io/v7S5n。
环境:production
正在清理...
有关此命令的文档,请访问 https://yarnpkg.com/en/docs/cli/run

I, [2023-07-04T08:09:05.089002 #1]  INFO -- : 终止异步进程
I, [2023-07-04T08:09:05.089274 #1]  INFO -- : 向 HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 42 发送 INT 信号
103:signal-handler (1688458145) 收到 SIGTERM,计划关闭...
I, [2023-07-04T08:09:05.089522 #1]  INFO -- : 向 exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 103 发送 TERM 信号
2023-07-04 08:09:05.089 UTC [42] LOG:  收到快速关闭请求
103:M 04 Jul 2023 08:09:05.183 # 用户请求关闭...
103:M 04 Jul 2023 08:09:05.183 * 在退出前保存最终的 RDB 快照。
2023-07-04 08:09:05.186 UTC [42] LOG:  中止任何活动事务
2023-07-04 08:09:05.190 UTC [42] LOG:  后台工作进程 "logical replication launcher" (PID 51) 以退出代码 1 退出
2023-07-04 08:09:05.190 UTC [46] LOG:  正在关闭
103:M 04 Jul 2023 08:09:05.388 * 数据库已保存到磁盘
103:M 04 Jul 2023 08:09:05.389 # Redis 现在准备退出,再见...
2023-07-04 08:09:05.431 UTC [42] LOG:  数据库系统已关闭


失败
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' 失败,返回 #<Process::Status: pid 2323 exit 1>
失败位置:/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
执行失败,参数为 {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
引导失败,退出代码为 1
** 引导失败 ** 请向上滚动查看早期的错误消息,可能不止一个。
./discourse-doctor 可能有助于诊断问题。
f1dc57af807a68bb877ce724ea4a3424c77d39250b8ee20cb022194938925ce8

我回退到了 git pull 之前的提交(cdc5f905a2f245171b9f53fb76f4ba947389fc6b)并重新构建,结果得到了相同的错误。

我尝试运行 ./discourse-doctor,但它因相同的 babel 错误而失败。它提示安装使用了非官方插件,并建议我禁用它们,但在应用无法正常运行的情况下,我该如何操作?所有插件都是通过浏览器界面安装的,而不是在 app.yaml 中配置的。

当我重启应用时,浏览器中会出现「Oops - Error 500」。进入应用后,/var/www/discourse/log/production.log 显示了相同的语法错误,且 Ruby 版本确实是 3.1(ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [x86_64-linux])。

论坛现在已无法使用。我该如何修复 Ruby 版本?或者修复重新构建?或者回退到一个正常工作的应用?

我的 app.yml 文件(已移除注释并隐藏标识符):

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"
  - "templates/sshd.template.yml"
  - "templates/web.ratelimited.template.yml"

expose:
  - "80:80"
  - "443:443"
  - "2222:22"

params:
  db_default_text_search_config: "pg_catalog.english"
  db_shared_buffers: "128MB"
  version: stable

env:
  LANG: en_US.UTF-8
  UNICORN_WORKERS: 2
  DISCOURSE_DEVELOPER_EMAILS: 'redacted'
  DISCOURSE_HOSTNAME: 'redacted'
  DISCOURSE_SMTP_ADDRESS: "redacted"
  DISCOURSE_SMTP_PORT: 25
  DISCOURSE_SMTP_USER_NAME: "redacted"
  DISCOURSE_SMTP_PASSWORD: "redacted"
  DISCOURSE_SMTP_ENABLE_START_TLS: true
  LETSENCRYPT_ACCOUNT_EMAIL: "redacted"
  DISCOURSE_MAXMIND_LICENSE_KEY: "redacted"
  DISCOURSE_REFRESH_MAXMIND_DB_DURING_PRECOMPILE_DAYS: 0

volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - mkdir -p plugins
          - git clone https://github.com/discourse/docker_manager.git

run:
  - exec: echo "Beginning of custom commands"

  - exec: echo "End of custom commands"
  - exec: awk -F\# '{print $1;}' ~/.ssh/authorized_keys | awk 'BEGIN { print "Authorized SSH keys for this container:"; } NF>=2 {print $NF;}'
1 个赞

美国是公共假日,所以现在不是出问题的好时机……请问您能分享 discourse-doctor 的输出吗?

我怀疑可能是 docker-manager 没有更新,但同样有可能的是您确实需要禁用插件。不幸的是,我不知道该如何操作,因为您的 app.yml 似乎除了 docker_manager 之外不包含任何其他内容。

1 个赞

也许是你的主题中的错误。

./launcher start app

能让你的网站运行起来吗?

1 个赞

与此同时,我直接在容器内修改了 /var/www/discourse/lib/file_store/base_store.rb 以使其兼容 Ruby 3.1(将 * 改为 *args,将 ** 改为 **kwargs),重启了应用,现在论坛似乎已经可以正常运行了。

我检查了插件,实际上只有一个插件处于启用状态:docker_manager,版本为 0.1。还有另外两个插件处于禁用状态(chatstyleguide)。

以下是 Doctor 的日志:

DISCOURSE DOCTOR Tue Jul 4 08:34:54 UTC 2023
OS: Linux redacted 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64 GNU/Linux


Found containers/app.yml

==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=redacted
SMTP_ADDRESS="redacted" # (mandatory)
DEVELOPER_EMAILS=redacted
SMTP_PASSWORD="redacted" # (optional)
SMTP_PORT=25 # (optional)
SMTP_USER_NAME="redacted" # (optional)
LETSENCRYPT_ACCOUNT_EMAIL=redacted

==================== DOCKER INFO ====================
DOCKER VERSION: Docker version 19.03.15, build 99e3ed8919

DOCKER PROCESSES (docker ps -a)

CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS                      PORTS               NAMES
91601890406d        local_discourse/app   "/sbin/boot"        4 months ago        Exited (5) 17 minutes ago                       app

==================== SERIOUS PROBLEM!!!! ====================
app not running!
Attempting to rebuild
==================== REBUILD LOG ====================
x86_64 arch detected.
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 600 app
app
2.0.20230703-0055: Pulling from discourse/base
Digest: sha256:a943db5c56ee8b2025ec550b42fe12ecfa63990d428f43ba8358ca3632b5335f
Status: Image is up to date for discourse/base:2.0.20230703-0055
docker.io/discourse/base:2.0.20230703-0055
/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2023-07-04T08:35:07.717173 #1]  INFO -- : Reading from stdin
I, [2023-07-04T08:35:07.722553 #1]  INFO -- : > locale-gen $LANG && update-locale
I, [2023-07-04T08:35:07.786023 #1]  INFO -- : Generating locales (this might take a while)...
Generation complete.

I, [2023-07-04T08:35:07.786357 #1]  INFO -- : > mkdir -p /shared/postgres_run
I, [2023-07-04T08:35:07.789454 #1]  INFO -- :
I, [2023-07-04T08:35:07.789985 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2023-07-04T08:35:07.793915 #1]  INFO -- :
I, [2023-07-04T08:35:07.794579 #1]  INFO -- : > chmod 775 /shared/postgres_run
I, [2023-07-04T08:35:07.799138 #1]  INFO -- :
I, [2023-07-04T08:35:07.799642 #1]  INFO -- : > rm -fr /var/run/postgresql
I, [2023-07-04T08:35:07.803203 #1]  INFO -- :
I, [2023-07-04T08:35:07.803670 #1]  INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2023-07-04T08:35:07.806664 #1]  INFO -- :
I, [2023-07-04T08:35:07.807133 #1]  INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
2023/07/04 08:35:07 socat[18] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): No such file or directory
I, [2023-07-04T08:35:07.815857 #1]  INFO -- :
I, [2023-07-04T08:35:07.816230 #1]  INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2023-07-04T08:35:07.821272 #1]  INFO -- :
I, [2023-07-04T08:35:07.821753 #1]  INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2023-07-04T08:35:07.825460 #1]  INFO -- :
I, [2023-07-04T08:35:07.825846 #1]  INFO -- : > mkdir -p /shared/postgres_run/13-main.pg_stat_tmp
I, [2023-07-04T08:35:07.828773 #1]  INFO -- :
I, [2023-07-04T08:35:07.829257 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run/13-main.pg_stat_tmp
I, [2023-07-04T08:35:07.831919 #1]  INFO -- :
I, [2023-07-04T08:35:07.837345 #1]  INFO -- : File > /etc/service/postgres/run  chmod: +x  chown:
I, [2023-07-04T08:35:07.843481 #1]  INFO -- : File > /etc/service/postgres/log/run  chmod: +x  chown:
I, [2023-07-04T08:35:07.850314 #1]  INFO -- : File > /etc/runit/3.d/99-postgres  chmod: +x  chown:
I, [2023-07-04T08:35:07.855908 #1]  INFO -- : File > /root/upgrade_postgres  chmod: +x  chown:
I, [2023-07-04T08:35:07.856300 #1]  INFO -- : > chown -R root /var/lib/postgresql/13/main
I, [2023-07-04T08:35:08.013507 #1]  INFO -- :
I, [2023-07-04T08:35:08.013848 #1]  INFO -- : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/13/bin/initdb -D /shared/postgres_data || exit 0
I, [2023-07-04T08:35:08.016115 #1]  INFO -- :
I, [2023-07-04T08:35:08.016262 #1]  INFO -- : > chown -R postgres:postgres /shared/postgres_data
I, [2023-07-04T08:35:08.049958 #1]  INFO -- :
I, [2023-07-04T08:35:08.050126 #1]  INFO -- : > chown -R postgres:postgres /var/run/postgresql
I, [2023-07-04T08:35:08.053008 #1]  INFO -- :
I, [2023-07-04T08:35:08.053405 #1]  INFO -- : > /root/upgrade_postgres
I, [2023-07-04T08:35:08.060826 #1]  INFO -- :
I, [2023-07-04T08:35:08.061125 #1]  INFO -- : > rm /root/upgrade_postgres
I, [2023-07-04T08:35:08.063448 #1]  INFO -- :
I, [2023-07-04T08:35:08.064215 #1]  INFO -- : Replacing data_directory = '/var/lib/postgresql/13/main' with data_directory = '/shared/postgres_data' in /etc/postgresql/13/main/postgresql.conf
I, [2023-07-04T08:35:08.064714 #1]  INFO -- : Replacing (?-mix:#?listen_addresses *=.*) with listen_addresses = '*' in /etc/postgresql/13/main/postgresql.conf
I, [2023-07-04T08:35:08.064984 #1]  INFO -- : Replacing (?-mix:#?synchronous_commit *=.*) with synchronous_commit = $db_synchronous_commit in /etc/postgresql/13/main/postgresql.conf
I, [2023-07-04T08:35:08.065291 #1]  INFO -- : Replacing (?-mix:#?shared_buffers *=.*) with shared_buffers = $db_shared_buffers in /etc/postgresql/13/main/postgresql.conf
I, [2023-07-04T08:35:08.065574 #1]  INFO -- : Replacing (?-mix:#?work_mem *=.*) with work_mem = $db_work_mem in /etc/postgresql/13/main/postgresql.conf
I, [2023-07-04T08:35:08.065849 #1]  INFO -- : Replacing (?-mix:#?default_text_search_config *=.*) with default_text_search_config = '$db_default_text_search_config' in /etc/postgresql/13/main/postgresql.conf
I, [2023-07-04T08:35:08.066118 #1]  INFO -- : > install -d -m 0755 -o postgres -g postgres /shared/postgres_backup
I, [2023-07-04T08:35:08.069168 #1]  INFO -- :
I, [2023-07-04T08:35:08.069586 #1]  INFO -- : Replacing (?-mix:#?checkpoint_segments *=.*) with checkpoint_segments = $db_checkpoint_segments in /etc/postgresql/13/main/postgresql.conf
I, [2023-07-04T08:35:08.069904 #1]  INFO -- : Replacing (?-mix:#?logging_collector *=.*) with logging_collector = $db_logging_collector in /etc/postgresql/13/main/postgresql.conf
I, [2023-07-04T08:35:08.070256 #1]  INFO -- : Replacing (?-mix:#?log_min_duration_statement *=.*) with log_min_duration_statement = $db_log_min_duration_statement in /etc/postgresql/13/main/postgresql.conf
I, [2023-07-04T08:35:08.070817 #1]  INFO -- : Replacing (?-mix:^#local +replication +postgres +peer$) with local replication postgres  peer in /etc/postgresql/13/main/pg_hba.conf
I, [2023-07-04T08:35:08.071076 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*127.*$) with host all all 0.0.0.0/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2023-07-04T08:35:08.071371 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*::1\/128.*$) with host all all ::/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2023-07-04T08:35:08.071569 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main
I, [2023-07-04T08:35:08.073087 #1]  INFO -- : > sleep 5
2023-07-04 08:35:08.420 UTC [41] LOG:  starting PostgreSQL 13.11 (Debian 13.11-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
2023-07-04 08:35:08.421 UTC [41] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2023-07-04 08:35:08.421 UTC [41] LOG:  listening on IPv6 address "::", port 5432
2023-07-04 08:35:08.431 UTC [41] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2023-07-04 08:35:08.446 UTC [44] LOG:  database system was shut down at 2023-07-04 08:31:43 UTC
2023-07-04 08:35:08.465 UTC [41] LOG:  database system is ready to accept connections
I, [2023-07-04T08:35:13.076935 #1]  INFO -- :
I, [2023-07-04T08:35:13.077237 #1]  INFO -- : > su postgres -c 'createdb discourse' || true
2023-07-04 08:35:13.149 UTC [54] postgres@postgres ERROR:  database "discourse" already exists
2023-07-04 08:35:13.149 UTC [54] postgres@postgres STATEMENT:  CREATE DATABASE discourse;
createdb: error: database creation failed: ERROR:  database "discourse" already exists
I, [2023-07-04T08:35:13.152279 #1]  INFO -- :
I, [2023-07-04T08:35:13.152523 #1]  INFO -- : > su postgres -c 'psql discourse -c "create user discourse;"' || true
2023-07-04 08:35:13.211 UTC [58] postgres@discourse ERROR:  role "discourse" already exists
2023-07-04 08:35:13.211 UTC [58] postgres@discourse STATEMENT:  create user discourse;
ERROR:  role "discourse" already exists
I, [2023-07-04T08:35:13.213860 #1]  INFO -- :
I, [2023-07-04T08:35:13.214061 #1]  INFO -- : > su postgres -c 'psql discourse -c "grant all privileges on database discourse to discourse;"' || true
I, [2023-07-04T08:35:13.265307 #1]  INFO -- : GRANT

I, [2023-07-04T08:35:13.265564 #1]  INFO -- : > su postgres -c 'psql discourse -c "alter schema public owner to discourse;"'
I, [2023-07-04T08:35:13.317945 #1]  INFO -- : ALTER SCHEMA

I, [2023-07-04T08:35:13.318152 #1]  INFO -- : > su postgres -c 'psql template1 -c "create extension if not exists hstore;"'
NOTICE:  extension "hstore" already exists, skipping
I, [2023-07-04T08:35:13.374925 #1]  INFO -- : CREATE EXTENSION

I, [2023-07-04T08:35:13.375085 #1]  INFO -- : > su postgres -c 'psql template1 -c "create extension if not exists pg_trgm;"'
NOTICE:  extension "pg_trgm" already exists, skipping
I, [2023-07-04T08:35:13.424029 #1]  INFO -- : CREATE EXTENSION

I, [2023-07-04T08:35:13.424239 #1]  INFO -- : > su postgres -c 'psql discourse -c "create extension if not exists hstore;"'
NOTICE:  extension "hstore" already exists, skipping
I, [2023-07-04T08:35:13.473016 #1]  INFO -- : CREATE EXTENSION

I, [2023-07-04T08:35:13.473353 #1]  INFO -- : > su postgres -c 'psql discourse -c "create extension if not exists pg_trgm;"'
NOTICE:  extension "pg_trgm" already exists, skipping
I, [2023-07-04T08:35:13.521434 #1]  INFO -- : CREATE EXTENSION

I, [2023-07-04T08:35:13.521788 #1]  INFO -- : > sudo -u postgres psql discourse
I, [2023-07-04T08:35:13.524205 #1]  INFO -- : update pg_database set encoding = pg_char_to_encoding('UTF8') where datname = 'discourse' AND encoding = pg_char_to_encoding('SQL_ASCII');

I, [2023-07-04T08:35:13.584880 #1]  INFO -- : File > /var/lib/postgresql/take-database-backup  chmod: +x  chown: postgres:postgres
I, [2023-07-04T08:35:13.588081 #1]  INFO -- : File > /var/spool/cron/crontabs/postgres  chmod:   chown:
I, [2023-07-04T08:35:13.588556 #1]  INFO -- : > echo postgres installed!
I, [2023-07-04T08:35:13.591048 #1]  INFO -- : postgres installed!

I, [2023-07-04T08:35:13.596241 #1]  INFO -- : File > /etc/service/redis/run  chmod: +x  chown:
I, [2023-07-04T08:35:13.601338 #1]  INFO -- : File > /etc/service/redis/log/run  chmod: +x  chown:
I, [2023-07-04T08:35:13.606793 #1]  INFO -- : File > /etc/runit/3.d/10-redis  chmod: +x  chown:
I, [2023-07-04T08:35:13.608119 #1]  INFO -- : Replacing daemonize yes with  in /etc/redis/redis.conf
I, [2023-07-04T08:35:13.609135 #1]  INFO -- : Replacing (?-mix:^pidfile.*$) with  in /etc/redis/redis.conf
I, [2023-07-04T08:35:13.609825 #1]  INFO -- : > install -d -m 0755 -o redis -g redis /shared/redis_data
I, [2023-07-04T08:35:13.613120 #1]  INFO -- :
I, [2023-07-04T08:35:13.614135 #1]  INFO -- : Replacing (?-mix:^logfile.*$) with logfile "" in /etc/redis/redis.conf
I, [2023-07-04T08:35:13.614898 #1]  INFO -- : Replacing (?-mix:^bind .*$) with  in /etc/redis/redis.conf
I, [2023-07-04T08:35:13.615551 #1]  INFO -- : Replacing (?-mix:^dir .*$) with dir /shared/redis_data in /etc/redis/redis.conf
I, [2023-07-04T08:35:13.616281 #1]  INFO -- : Replacing (?-mix:^protected-mode yes) with protected-mode no in /etc/redis/redis.conf
I, [2023-07-04T08:35:13.616974 #1]  INFO -- : Replacing # io-threads 4 with io-threads $redis_io_threads in /etc/redis/redis.conf
I, [2023-07-04T08:35:13.617567 #1]  INFO -- : > echo redis installed
I, [2023-07-04T08:35:13.620142 #1]  INFO -- : redis installed

I, [2023-07-04T08:35:13.620773 #1]  INFO -- : > cat /etc/redis/redis.conf | grep logfile
I, [2023-07-04T08:35:13.627103 #1]  INFO -- : logfile ""

I, [2023-07-04T08:35:13.627893 #1]  INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2023-07-04T08:35:13.629707 #1]  INFO -- : > sleep 10
102:C 04 Jul 2023 08:35:13.639 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
102:C 04 Jul 2023 08:35:13.639 # Redis version=7.0.7, bits=64, commit=00000000, modified=0, pid=102, just started
102:C 04 Jul 2023 08:35:13.639 # Configuration loaded
102:M 04 Jul 2023 08:35:13.639 * monotonic clock: POSIX clock_gettime
102:M 04 Jul 2023 08:35:13.640 * Running mode=standalone, port=6379.
102:M 04 Jul 2023 08:35:13.640 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
102:M 04 Jul 2023 08:35:13.640 # Server initialized
102:M 04 Jul 2023 08:35:13.640 * Loading RDB produced by version 7.0.7
102:M 04 Jul 2023 08:35:13.640 * RDB age 211 seconds
102:M 04 Jul 2023 08:35:13.640 * RDB memory usage when created 15.65 Mb
102:M 04 Jul 2023 08:35:13.681 * Done loading RDB, keys loaded: 11320, keys expired: 0.
102:M 04 Jul 2023 08:35:13.681 * DB loaded from disk: 0.041 seconds
102:M 04 Jul 2023 08:35:13.681 * Ready to accept connections
I, [2023-07-04T08:35:23.632444 #1]  INFO -- :
I, [2023-07-04T08:35:23.634001 #1]  INFO -- : > thpoff echo "thpoff is installed!"
I, [2023-07-04T08:35:23.647427 #1]  INFO -- : thpoff is installed!

I, [2023-07-04T08:35:23.648579 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_SMTP_ADDRESS"] == "smtp.example.com"; puts "Aborting! Mail is not configured!"; exit 1; end'
I, [2023-07-04T08:35:23.734677 #1]  INFO -- :
I, [2023-07-04T08:35:23.734943 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_HOSTNAME"] == "discourse.example.com"; puts "Aborting! Domain is not configured!"; exit 1; end'
I, [2023-07-04T08:35:23.805114 #1]  INFO -- :
I, [2023-07-04T08:35:23.805363 #1]  INFO -- : > /usr/local/bin/ruby -e 'if (ENV["DISCOURSE_CDN_URL"] || "")[0..1] == "//"; puts "Aborting! CDN must have a protocol specified. Once fixed you should rebake your posts now to correct all posts."; exit 1; end'
I, [2023-07-04T08:35:23.875870 #1]  INFO -- :
I, [2023-07-04T08:35:23.876109 #1]  INFO -- : > rm -f /etc/cron.d/anacron
I, [2023-07-04T08:35:23.879621 #1]  INFO -- :
I, [2023-07-04T08:35:23.883359 #1]  INFO -- : File > /etc/cron.d/anacron  chmod:   chown:
I, [2023-07-04T08:35:23.889667 #1]  INFO -- : File > /etc/runit/1.d/copy-env  chmod: +x  chown:
I, [2023-07-04T08:35:23.895348 #1]  INFO -- : File > /etc/service/unicorn/run  chmod: +x  chown:
I, [2023-07-04T08:35:23.900664 #1]  INFO -- : File > /etc/service/nginx/run  chmod: +x  chown:
I, [2023-07-04T08:35:23.906591 #1]  INFO -- : File > /etc/runit/3.d/01-nginx  chmod: +x  chown:
I, [2023-07-04T08:35:23.911796 #1]  INFO -- : File > /etc/runit/3.d/02-unicorn  chmod: +x  chown:
I, [2023-07-04T08:35:23.912015 #1]  INFO -- : Replacing # postgres with sv start postgres || exit 1 in /etc/service/unicorn/run
I, [2023-07-04T08:35:23.912204 #1]  INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2023-07-04T08:35:23.914896 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git reset --hard
129:C 04 Jul 2023 08:35:23.923 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
129:C 04 Jul 2023 08:35:23.923 # Redis version=7.0.7, bits=64, commit=00000000, modified=0, pid=129, just started
129:C 04 Jul 2023 08:35:23.923 # Configuration loaded
129:M 04 Jul 2023 08:35:23.923 * monotonic clock: POSIX clock_gettime
129:M 04 Jul 2023 08:35:23.923 # Warning: Could not create server TCP listening socket *:6379: bind: Address already in use
129:M 04 Jul 2023 08:35:23.923 # Failed listening on port 6379 (TCP), aborting.
Updating files: 100% (33396/33396), done.
I, [2023-07-04T08:35:28.224120 #1]  INFO -- : HEAD is now at 3f1024de7 DEV: Refactor DM channel creation into new service pattern (#22144)

I, [2023-07-04T08:35:28.224329 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git clean -f
I, [2023-07-04T08:35:28.441174 #1]  INFO -- :
I, [2023-07-04T08:35:28.441741 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
  set -o errexit
  if [ $(git rev-parse --is-shallow-repository) == "true" ]; then
      git remote set-branches --add origin main
      git remote set-branches origin stable
      git fetch --depth 1 origin stable
  else
      git fetch --tags --prune-tags --prune --force origin
  fi
'
From https://github.com/discourse/discourse
 - [deleted]             (none)     -> origin/0-drop-sk-test
 - [deleted]             (none)     -> origin/dev/move-chat-user-count-update-to-ensure-consistency
 - [deleted]             (none)     -> origin/dev_update_diffhtml
 - [deleted]             (none)     -> origin/fix-intercept-with-target
 - [deleted]             (none)     -> origin/issue/font-loading-wizard-style
 - [deleted]             (none)     -> origin/modal-named-outlet
   3f1024de7..ee1dbd46c  main                  -> origin/main
 * [new branch]          0-helpers             -> origin/0-helpers
 + a23a31600...e24fcb507 activation-modals-update -> origin/activation-modals-update  (forced update)
   95ce96528..d370c8c0e  chat-notices          -> origin/chat-notices
 * [new branch]          dependabot/npm_and_yarn/app/assets/javascripts/uppy/aws-s3-3.2.0 -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/aws-s3-3.2.0
 + 86e63992b...3ab4d8598 dependabot/npm_and_yarn/app/assets/javascripts/uppy/aws-s3-multipart-3.4.0 -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/aws-s3-multipart-3.4.0  (forced update)
 + 3949f2ca8...e71e5eff6 dev/make-sure-we-stream-data-to-csv-files-when-running-exports -> origin/dev/make-sure-we-stream-data-to-csv-files-when-running-exports  (forced update)
 * [new branch]          dev/minio-s3-system-specs -> origin/dev/minio-s3-system-specs
 + dff30f62e...e8082afe2 dismiss-modals-update -> origin/dismiss-modals-update  (forced update)
 * [new branch]          do-not-disturb-modal-upgrade -> origin/do-not-disturb-modal-upgrade
 * [new branch]          feature/interpolation-key-check -> origin/feature/interpolation-key-check
   33608240f..509797feb  feature/tracking-unread-thread-in-sidebar -> origin/feature/tracking-unread-thread-in-sidebar
   e571e1131..4fae425b9  fix-mobile-share      -> origin/fix-mobile-share
 + f588c592d...03e460b6a fullscreen-modals-update -> origin/fullscreen-modals-update  (forced update)
 + ccc6c903a...94bb20818 group-add-members-modal-upgrade -> origin/group-add-members-modal-upgrade  (forced update)
 * [new branch]          issue/thread-original-message-delete-restore -> origin/issue/thread-original-message-delete-restore
 + 1980b69ef...67273d209 loic-migrate-chat-message-creator-to-a-service -> origin/loic-migrate-chat-message-creator-to-a-service  (forced update)
 + d1588f61c...c07b70d74 poll-plugin-update    -> origin/poll-plugin-update  (forced update)
   136013353..b83369a54  poll-refactor         -> origin/poll-refactor
 + 12f2d7ff7...7717f3651 second-factor-add-security-key-modal-upgrade -> origin/second-factor-add-security-key-modal-upgrade  (forced update)
 + 205f3bf1b...e99d456be second-factor-add-totp-modal-upgrade -> origin/second-factor-add-totp-modal-upgrade  (forced update)
 + dc2c6cc41...696652aa0 second-factor-backup-edit-modal-upgrade -> origin/second-factor-backup-edit-modal-upgrade  (forced update)
 + f904e4133...9d65daa00 second-factor-edit-security-key-modal-upgrade -> origin/second-factor-edit-security-key-modal-upgrade  (forced update)
 + 9d0d76101...ad2ae96f0 share-topic-modal     -> origin/share-topic-modal  (forced update)
 + 310137e3c...d9b37147c slack_import          -> origin/slack_import  (forced update)
   7de3cb9b0..38a9694ff  tests-passed          -> origin/tests-passed
I, [2023-07-04T08:35:30.181323 #1]  INFO -- :
I, [2023-07-04T08:35:30.181801 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
  set -o errexit
  if [[ $(git symbolic-ref --short HEAD) == stable ]] ; then
      git pull
  else
      git -c advice.detachedHead=false checkout stable
  fi
'
Switched to a new branch 'stable'
I, [2023-07-04T08:35:36.709492 #1]  INFO -- : Branch 'stable' set up to track remote branch 'stable' from 'origin'.

I, [2023-07-04T08:35:36.709921 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git config user.discourse-version stable
I, [2023-07-04T08:35:36.722428 #1]  INFO -- :
I, [2023-07-04T08:35:36.722824 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp
I, [2023-07-04T08:35:36.726861 #1]  INFO -- :
I, [2023-07-04T08:35:36.727244 #1]  INFO -- : > cd /var/www/discourse && chown discourse:www-data tmp
I, [2023-07-04T08:35:36.730932 #1]  INFO -- :
I, [2023-07-04T08:35:36.731353 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/pids
I, [2023-07-04T08:35:36.735322 #1]  INFO -- :
I, [2023-07-04T08:35:36.735760 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/sockets
I, [2023-07-04T08:35:36.739494 #1]  INFO -- :
I, [2023-07-04T08:35:36.739901 #1]  INFO -- : > cd /var/www/discourse && touch tmp/.gitkeep
I, [2023-07-04T08:35:36.744366 #1]  INFO -- :
I, [2023-07-04T08:35:36.744815 #1]  INFO -- : > cd /var/www/discourse && mkdir -p                    /shared/log/rails
I, [2023-07-04T08:35:36.748457 #1]  INFO -- :
I, [2023-07-04T08:35:36.748854 #1]  INFO -- : > cd /var/www/discourse && bash -c "touch -a           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log"
I, [2023-07-04T08:35:36.754083 #1]  INFO -- :
I, [2023-07-04T08:35:36.754569 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log /var/www/discourse/log"
I, [2023-07-04T08:35:36.760285 #1]  INFO -- :
I, [2023-07-04T08:35:36.760700 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p           /shared/{uploads,backups}"
I, [2023-07-04T08:35:36.766617 #1]  INFO -- :
I, [2023-07-04T08:35:36.767172 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/{uploads,backups} /var/www/discourse/public"
I, [2023-07-04T08:35:36.776053 #1]  INFO -- :
I, [2023-07-04T08:35:36.776610 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p           /shared/tmp/{backups,restores}"
I, [2023-07-04T08:35:36.782478 #1]  INFO -- :
I, [2023-07-04T08:35:36.783022 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/tmp/{backups,restores} /var/www/discourse/tmp"
I, [2023-07-04T08:35:36.788665 #1]  INFO -- :
I, [2023-07-04T08:35:36.789017 #1]  INFO -- : > cd /var/www/discourse && chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp
I, [2023-07-04T08:35:36.905317 #1]  INFO -- :
I, [2023-07-04T08:35:36.905593 #1]  INFO -- : > cd /var/www/discourse && [ ! -d public/plugins ] || find public/plugins/ -maxdepth 1 -xtype l -delete
I, [2023-07-04T08:35:36.908220 #1]  INFO -- :
I, [2023-07-04T08:35:36.908848 #1]  INFO -- : Replacing # redis with sv start redis || exit 1 in /etc/service/unicorn/run
I, [2023-07-04T08:35:36.909446 #1]  INFO -- : > cd /var/www/discourse/plugins && mkdir -p plugins
I, [2023-07-04T08:35:36.913315 #1]  INFO -- :
I, [2023-07-04T08:35:36.913811 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/docker_manager.git
Cloning into 'docker_manager'...
I, [2023-07-04T08:35:38.642193 #1]  INFO -- :
I, [2023-07-04T08:35:38.642814 #1]  INFO -- : > cp /var/www/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf
I, [2023-07-04T08:35:38.647323 #1]  INFO -- :
I, [2023-07-04T08:35:38.647896 #1]  INFO -- : > rm /etc/nginx/sites-enabled/default
I, [2023-07-04T08:35:38.650756 #1]  INFO -- :
I, [2023-07-04T08:35:38.651170 #1]  INFO -- : > mkdir -p /var/nginx/cache
I, [2023-07-04T08:35:38.654148 #1]  INFO -- :
I, [2023-07-04T08:35:38.654989 #1]  INFO -- : Replacing pid /run/nginx.pid; with daemon off; in /etc/nginx/nginx.conf
I, [2023-07-04T08:35:38.655476 #1]  INFO -- : Replacing (?m-ix:upstream[^\}]+\}) with upstream discourse { server 127.0.0.1:3000; } in /etc/nginx/conf.d/discourse.conf
I, [2023-07-04T08:35:38.655887 #1]  INFO -- : Replacing (?-mix:server_name.+$) with server_name _ ; in /etc/nginx/conf.d/discourse.conf
I, [2023-07-04T08:35:38.656346 #1]  INFO -- : Replacing (?-mix:client_max_body_size.+$) with client_max_body_size $upload_size ; in /etc/nginx/conf.d/discourse.conf
I, [2023-07-04T08:35:38.656706 #1]  INFO -- : Replacing (?-mix:worker_connections.+$) with worker_connections $nginx_worker_connections ; in /etc/nginx/nginx.conf
I, [2023-07-04T08:35:38.656972 #1]  INFO -- : > echo "done configuring web"
I, [2023-07-04T08:35:38.659032 #1]  INFO -- : done configuring web

I, [2023-07-04T08:35:38.659502 #1]  INFO -- : > cd /var/www/discourse && gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock)
I, [2023-07-04T08:35:39.376540 #1]  INFO -- : Successfully installed bundler-2.4.1
1 gem installed

I, [2023-07-04T08:35:39.376897 #1]  INFO -- : > cd /var/www/discourse && find /var/www/discourse ! -user discourse -exec chown discourse {} \+
I, [2023-07-04T08:35:42.247035 #1]  INFO -- :
I, [2023-07-04T08:35:42.247550 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
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".
I, [2023-07-04T08:37:51.032227 #1]  INFO -- : yarn install v1.22.19
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
[4/5] Linking dependencies...
[5/5] Building fresh packages...
$ yarn --cwd app/assets/javascripts/discourse $(node -e 'if(JSON.parse(process.env.npm_config_argv).original.includes(`--frozen-lockfile`)){console.log(`--frozen-lockfile`)}')
yarn install v1.22.19
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
Done in 68.15s.
Done in 118.83s.
yarn cache v1.22.19
success Cleared cache.
Done in 9.49s.

I, [2023-07-04T08:37:51.033163 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle config --local deployment true'
I, [2023-07-04T08:37:51.285818 #1]  INFO -- :
I, [2023-07-04T08:37:51.285947 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle config --local without "development test"'
I, [2023-07-04T08:37:51.480721 #1]  INFO -- : You are replacing the current local value of without, which is currently "test:development"

我的更新过程中出现了一个错误

```ruby
api_key = "a quick brown fox"
fetch("https://api.example.com/data", headers: { 'Authorization' => api_key })

请帮我修复它。

I, [2023-07-04T08:37:51.481286 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle install --retry 3 --jobs 4'
I, [2023-07-04T08:40:20.584190 #1]  INFO -- : 正在从 https://rubygems.org/ 获取 gem 元数据.........
正在获取 https://github.com/discourse/mail.git
使用 rake 13.0.6
正在获取 concurrent-ruby 1.1.10
正在获取 minitest 5.17.0
使用 builder 3.2.4
使用 racc 1.6.2
正在获取 erubi 1.11.0
使用 crass 1.0.6
正在获取 rack 2.2.5
正在安装 erubi 1.11.0
正在安装 minitest 5.17.0
正在安装 rack 2.2.5
使用 mini_mime 1.1.2
使用 timeout 0.3.1
使用 public_suffix 5.0.1
使用 aws-eventstream 1.2.0
使用 aws-partitions 1.583.0
使用 jmespath 1.6.2
正在获取 msgpack 1.6.0
使用 bundler 2.4.1
使用 byebug 11.1.3
使用 cbor 0.5.9.6
使用 cgi 0.3.6
使用 chunky_png 1.4.0
使用 coderay 1.1.3
使用 colored2 3.1.2
正在获取 connection_pool 2.3.0
正在安装 concurrent-ruby 1.1.10
正在安装 msgpack 1.6.0(包含原生扩展)
正在安装 connection_pool 2.3.0
正在获取 openssl 3.0.2
正在安装 openssl 3.0.2(包含原生扩展)
使用 cppjieba_rb 0.4.2
使用 diffy 3.4.2
使用 digest 3.1.1
使用 discourse-fonts 0.0.9
正在获取 regexp_parser 2.6.1
正在安装 regexp_parser 2.6.1
使用 email_reply_trimmer 0.1.13
正在获取 excon 0.96.0
使用 execjs 2.8.1
正在获取 exifr 1.3.10
正在安装 exifr 1.3.10
正在安装 excon 0.96.0
使用 faraday-net_http 3.0.2
使用 ruby2_keywords 0.0.5
使用 fast_blank 1.0.1
使用 fast_xs 0.8.0
正在获取 fastimage 2.2.6
使用 ffi 1.15.5
正在安装 fastimage 2.2.6
使用 fspath 3.1.2
使用 gc_tracer 1.5.1
使用 guess_html_encoding 0.0.11
使用 hana 1.3.7
使用 hashie 5.0.0
使用 highline 2.1.0
使用 hkdf 1.0.0
使用 http_accept_language 2.1.1
正在获取 image_size 3.2.0
使用 htmlentities 4.3.4
使用 in_threads 1.6.0
使用 progress 3.6.0
使用 json 2.6.3
正在获取 uri_template 0.7.0
正在安装 uri_template 0.7.0
正在安装 image_size 3.2.0
正在获取 jwt 2.6.0
正在安装 jwt 2.6.0
使用 kgio 2.11.4
正在获取 libv8-node 16.10.0.0 (x86_64-linux)
使用 method_source 1.0.0
正在获取 thor 1.2.1
正在安装 thor 1.2.1
正在获取 zeitwerk 2.6.6
正在安装 zeitwerk 2.6.6
使用 logstash-event 1.2.02
正在获取 logster 2.11.3
正在安装 logster 2.11.3
使用 lru_redux 1.1.0
使用 lz4-ruby 0.3.3
使用 maxminddb 0.1.22
使用 memory_profiler 1.0.1
正在获取 redis 4.8.0
正在安装 redis 4.8.0
使用 mini_sql 1.4.0
使用 multi_json 1.15.0
使用 multi_xml 0.6.0
使用 mustache 1.1.1
使用 uri 0.12.2
正在获取 nio4r 2.5.8
正在安装 nio4r 2.5.8(包含原生扩展)
正在安装 libv8-node 16.10.0.0 (x86_64-linux)
正在获取 version_gem 1.1.1
正在安装 version_gem 1.1.1
正在获取 oj 3.13.14
正在安装 oj 3.13.14(包含原生扩展)
使用 optimist 3.0.1
正在获取 pg 1.4.5
正在安装 pg 1.4.5(包含原生扩展)
正在获取 r2 0.2.7
正在安装 r2 0.2.7
正在获取 raindrops 0.20.0
正在安装 raindrops 0.20.0(包含原生扩展)
使用 rchardet 1.8.0
使用 rexml 3.2.5
使用 rinku 2.0.6
使用 rotp 6.2.2
使用 rqrcode_core 1.2.0
使用 rubyzip 2.3.2
正在获取 tilt 2.0.11
正在安装 tilt 2.0.11
使用 sshkey 2.0.0
正在获取 stackprof 0.2.23
正在安装 stackprof 0.2.23(包含原生扩展)
使用 unf_ext 0.0.8.2
使用 webrick 1.7.0
正在获取 xorcist 1.1.3
正在安装 xorcist 1.1.3(包含原生扩展)
正在获取 nokogiri 1.14.2 (x86_64-linux)
正在安装 nokogiri 1.14.2 (x86_64-linux)
使用 mail 2.8.0.edge,来自 https://github.com/discourse/mail.git(位于 main@5b700fc)
使用 net-protocol 0.2.1
正在获取 addressable 2.8.1
正在安装 addressable 2.8.1
使用 aws-sigv4 1.5.0
正在获取 rack-test 2.0.2
正在安装 rack-test 2.0.2
使用 request_store 1.5.1
正在获取 message_bus 4.3.1
正在安装 message_bus 4.3.1
正在获取 rack-mini-profiler 3.0.0
正在安装 rack-mini-profiler 3.0.0
正在获取 rack-protection 3.0.5
正在安装 rack-protection 3.0.5
正在获取 i18n 1.12.0
正在安装 i18n 1.12.0
正在获取 tzinfo 2.0.5
正在安装 tzinfo 2.0.5
正在获取 sprockets 3.7.2
正在安装 sprockets 3.7.2
正在获取 ecma-re-validator 0.4.0
正在安装 ecma-re-validator 0.4.0
使用 uglifier 4.2.0
正在获取 faraday 2.7.2
正在安装 faraday 2.7.2
使用 mini_suffix 0.3.3
正在获取 sassc 2.0.1
正在安装 sassc 2.0.1(包含原生扩展)
使用 omniauth 1.9.2
正在获取 image_optim 0.31.2
正在安装 image_optim 0.31.2
使用 pry 0.14.2
使用 logstash-logger 0.26.1
正在获取 sidekiq 6.5.8
正在安装 sidekiq 6.5.8
正在获取 redis-namespace 1.9.0
正在安装 redis-namespace 1.9.0
使用 net-http 0.3.2
正在获取 mini_racer 0.6.3
正在安装 mini_racer 0.6.3(包含原生扩展)
使用 oauth-tty 1.0.5
使用 snaky_hash 2.0.1
正在获取 bootsnap 1.15.0
正在安装 bootsnap 1.15.0(包含原生扩展)
使用 rbtrace 0.4.14
正在获取 puma 6.0.2
正在安装 puma 6.0.2(包含原生扩展)
正在获取 rqrcode 2.1.2
正在安装 rqrcode 2.1.2
使用 rss 0.2.9
使用 unf 0.1.4
正在获取 loofah 2.19.1
正在安装 loofah 2.19.1
使用 ruby-readability 0.7.0
正在获取 sanitize 6.0.0
正在安装 sanitize 6.0.0
正在获取 net-imap 0.3.1
正在安装 net-imap 0.3.1
使用 net-pop 0.1.2
使用 net-smtp 0.3.3
正在获取 css_parser 1.13.0
正在安装 css_parser 1.13.0
使用 aws-sdk-core 3.130.2
正在获取 activesupport 7.0.4.3
正在安装 activesupport 7.0.4.3
正在获取 json_schemer 0.2.23
正在安装 json_schemer 0.2.23
正在获取 faraday-retry 2.0.0
正在安装 faraday-retry 2.0.0
使用 oauth2 1.4.11
使用 pry-byebug 3.10.1
使用 pry-rails 0.3.9
正在获取 mini_scheduler 0.15.0
正在安装 mini_scheduler 0.15.0
使用 unicorn 6.1.0
使用 oauth 1.1.0
正在获取 rails-html-sanitizer 1.5.0
正在安装 rails-html-sanitizer 1.5.0
使用 aws-sdk-kms 1.56.0
使用 aws-sdk-sns 1.53.0
正在获取 rails-dom-testing 2.0.3
正在安装 rails-dom-testing 2.0.3
正在获取 globalid 1.0.1
正在安装 globalid 1.0.1
正在获取 activemodel 7.0.4.3
正在安装 activemodel 7.0.4.3
使用 omniauth-oauth2 1.7.3
使用 omniauth-oauth 1.2.0
使用 aws-sdk-s3 1.114.0
正在获取 actionview 7.0.4.3
正在安装 actionview 7.0.4.3
正在获取 activejob 7.0.4.3
正在安装 activejob 7.0.4.3
使用 active_model_serializers 0.8.4
正在获取 activerecord 7.0.4.3
正在安装 activerecord 7.0.4.3
使用 omniauth-facebook 9.0.0
使用 omniauth-github 1.4.0
使用 omniauth-google-oauth2 0.8.2
使用 omniauth-twitter 1.4.0
正在获取 actionpack 7.0.4.3
正在安装 actionpack 7.0.4.3
使用 actionview_precompiler 0.2.3
使用 discourse-seed-fu 2.3.12
正在获取 actionmailer 7.0.4.3
正在安装 actionmailer 7.0.4.3
正在获取 railties 7.0.4.3
正在安装 railties 7.0.4.3
使用 sprockets-rails 3.4.2
使用 lograge 0.12.0
正在获取 rails_failover 0.8.1
正在获取 rails_multisite 4.0.1
正在安装 rails_multisite 4.0.1
正在安装 rails_failover 0.8.1
正在获取 openssl-signature_algorithm 1.2.1
使用 web-push 3.0.0
正在安装 openssl-signature_algorithm 1.2.1
使用 cose 1.3.0
正在获取 sassc-rails 2.1.2
正在安装 sassc-rails 2.1.2
Bundle 完成!135 个 Gemfile 依赖项,现已安装 171 个 gem。
未安装 'development' 和 'test' 组中的 gems。
Bundled gems 已安装到 `./vendor/bundle`
来自 image_optim 的安装后消息:
Rails 图像资源优化已提取到 image_optim_rails gem 中
如果您不打算使用该 gem,可以安全地删除 `config.assets.image_optim = false`

I, [2023-07-04T08:40:20.585621 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all'
I, [2023-07-04T08:40:24.327439 #1]  INFO -- : 正在检出兼容的 docker_manager 版本:1b2d7eb0369155b6442b09adfb17b8942c04b093
HEAD 现在位于 1b2d7eb Bump minimal versions

I, [2023-07-04T08:40:24.327817 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
102:M 04 Jul 2023 08:40:28.803 * 300 秒内有 100 次变更。正在保存...
102:M 04 Jul 2023 08:40:28.804 * 后台保存由 pid 2319 启动
2319:C 04 Jul 2023 08:40:29.127 * DB 已保存到磁盘
2319:C 04 Jul 2023 08:40:29.128 * RDB 的 Fork CoW:当前 1 MB,峰值 1 MB,平均 1 MB
102:M 04 Jul 2023 08:40:29.210 * 后台保存成功终止
I, [2023-07-04T08:40:29.966284 #1]  INFO -- :
I, [2023-07-04T08:40:29.967083 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile'
- 正在构建
- 正在构建
- 正在构建...
- 正在清理
- 正在清理
构建错误 (broccoli-persistent-filter:Babel > [Babel: @ember/test-helpers]) 在 @ember/test-helpers/-internal/build-registry.js 中

[BABEL]: --- 占位符包 ---
此 @babel/plugin-proposal-private-property-in-object 版本并非用于导入。某些内容正在导入
@babel/plugin-proposal-private-property-in-object,但未在其 package.json 文件的
dependencies(或 devDependencies)中声明它。
将 "@babel/plugin-proposal-private-property-in-object" 添加到您的 devDependencies
以解决此错误。这将使此消息消失。
(处理时:/var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/index.js)错误:[BABEL]: --- 占位符包 ---
此 @babel/plugin-proposal-private-property-in-object 版本并非用于导入。某些内容正在导入
@babel/plugin-proposal-private-property-in-object,但未在其 package.json 文件的
dependencies(或 devDependencies)中声明它。
将 "@babel/plugin-proposal-private-property-in-object" 添加到您的 devDependencies
以解决此错误。这将使此消息消失。
(处理时:/var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/index.js)
    在 Object.<anonymous> (/var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-private-property-in-object/lib/index.js:28:7)
    在 Module._compile (node:internal/modules/cjs/loader:1256:14)
    在 Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    在 Module.load (node:internal/modules/cjs/loader:1119:32)
    在 Module._load (node:internal/modules/cjs/loader:960:12)
    在 Module.require (node:internal/modules/cjs/loader:1143:19)
    在 require (node:internal/modules/cjs/helpers:110:18)
    在 Object.<anonymous> (/var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/available-plugins.js:62:46)
    在 Module._compile (node:internal/modules/cjs/loader:1256:14)
    在 Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    在 Module.load (node:internal/modules/cjs/loader:1119:32)
    在 Module._load (node:internal/modules/cjs/loader:960:12)
    在 Module.require (node:internal/modules/cjs/loader:1143:19)
    在 require (node:internal/modules/cjs/helpers:110:18)
    在 Object.<anonymous> (/var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/filter-items.js:11:25)
    在 Module._compile (node:internal/modules/cjs/loader:1256:14)
    在 Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    在 Module.load (node:internal/modules/cjs/loader:1119:32)
    在 Module._load (node:internal/modules/cjs/loader:960:12)
    在 Module.require (node:internal/modules/cjs/loader:1143:19)
    在 require (node:internal/modules/cjs/helpers:110:18)
    在 Object.<anonymous> (/var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/index.js:16:20)
    在 Module._compile (node:internal/modules/cjs/loader:1256:14)
    在 Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    在 Module.load (node:internal/modules/cjs/loader:1119:32)
    在 Module._load (node:internal/modules/cjs/loader:960:12)
    在 Module.require (node:internal/modules/cjs/loader:1143:19)
    在 require (node:internal/modules/cjs/helpers:110:18)


堆栈跟踪和错误报告:/tmp/error.dump.62bb2ff34bdbec58308fd7d5b2fab0f6.log
错误:命令以退出代码 1 失败。
I, [2023-07-04T08:40:44.826892 #1]  INFO -- : 正在检查 'default' 的 'Video Upload'... 已是最新
yarn run v1.22.19
$ /var/www/discourse/app/assets/javascripts/node_modules/.bin/ember build -prod
警告:Node v18.16.1 未在您的平台上针对 Ember CLI 进行测试。建议您使用最新的“活动 LTS”版本的 Node.js。详情请见 https://git.io/v7S5n。
环境:production
正在清理...
info 访问 https://yarnpkg.com/en/docs/cli/run 查看有关此命令的文档。

I, [2023-07-04T08:40:44.827572 #1]  INFO -- : 正在终止异步进程
I, [2023-07-04T08:40:44.827621 #1]  INFO -- : 向 HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 41 发送 INT
I, [2023-07-04T08:40:44.827734 #1]  INFO -- : 向 exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 102 发送 TERM
102:signal-handler (1688460044) 收到 SIGTERM,计划关闭...
2023-07-04 08:40:44.827 UTC [41] LOG:  收到快速关闭请求
102:M 04 Jul 2023 08:40:44.856 # 用户请求关闭...
102:M 04 Jul 2023 08:40:44.856 * 退出前保存最终 RDB 快照。
2023-07-04 08:40:44.883 UTC [41] LOG:  中止任何活跃事务
2023-07-04 08:40:44.886 UTC [41] LOG:  后台工作进程 "logical replication launcher" (PID 50) 以退出代码 1 退出
2023-07-04 08:40:44.887 UTC [45] LOG:  正在关闭
102:M 04 Jul 2023 08:40:44.978 * DB 已保存到磁盘
102:M 04 Jul 2023 08:40:44.978 # Redis 现已准备退出,再见...
2023-07-04 08:40:45.023 UTC [41] LOG:  数据库系统已关闭


失败
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' 失败,返回 #<Process::Status: pid 2320 exit 1>
失败位置:/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec 失败,参数为 {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
bootstrap 失败,退出代码 1
** 引导失败 ** 请向上滚动并查找更早的错误消息,可能不止一个。
./discourse-doctor 可能有助于诊断问题。
64eb105c2de1517c880ea75102bf870c657542c35141dbec0fca357d33911198
==================== 重建日志结束 ====================
应用重建失败。

正在检查您的域名 . . .

与 redacted 的连接成功。
您可能应该移除任何非标准插件并重新构建。
正在尝试重启现有容器 . . .
检测到 x86_64 架构。

正在启动现有容器
+ /usr/bin/docker start app
守护进程错误响应:在端点 app (dc0e7be2e9a1b8644d73adf1e327236bdb49650ec05388fa81eb665e1ac1316f) 上编程外部连接时驱动程序失败:启动用户态代理时出错:监听 tcp 0.0.0.0:443:监听:地址已被占用
错误:启动容器失败:app
重启容器失败。


==================== 插件 ====================
          - git clone https://github.com/discourse/docker_manager.git

未检测到非官方插件。

请参阅 https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb 获取官方列表。

========================================




redacted 上的 Discourse 版本:未找到
localhost 上的 Discourse 版本:未找到


==================== 内存信息 ====================
RAM (MB): 3084

              total        used        free      shared  buff/cache   available
Mem:           3012         416        1648           6         947        2401
Swap:           511         117         394

==================== 磁盘空间检查 ====================
---------- 操作系统磁盘空间 ----------
文件系统      大小  已用  可用  使用% 挂载点
/dev/vda1        26G   20G  5.1G  80% /

==================== 磁盘信息 ====================
磁盘 /dev/vda: 26 GiB, 27917287424 字节, 54525952 个扇区
单位:扇区,1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xf849ba6e

设备     启动 开始      结束  扇区 大小 Id 类型
/dev/vda1        2048 54525951 54523904  26G 83 Linux

==================== 磁盘信息结束 ====================

==================== 邮件测试 ====================
要进行更可靠的测试,请从 http://www.mail-tester.com/ 获取一个地址
或者只是给自己发送一条测试消息。
用于邮件测试的电子邮件地址?(输入 'n' 跳过)[redacted]:正在向 redacted 发送邮件 . . .
守护进程错误响应:容器 91601890406d42c06076f4468dfcc196af018179f6bc970a6983feb296ef00c5 未运行

替换:SMTP_PASSWORD
替换:LETSENCRYPT_ACCOUNT_EMAIL
替换:DEVELOPER_EMAILS
替换:DISCOURSE_DB_PASSWORD
替换:Sending mail to

==================== 完成! ====================

只有默认主题(我想,它的名字很奇怪,叫“从站点文本迁移”,是由 system 创建的),以及 3 个额外的组件(Disco TOCSick - Gallery ComponentVideo Upload)。我尝试禁用这些组件并重新构建,但得到了相同的错误。

在我更改 base_store.rb 之前,它确实启动了应用,但从浏览器访问论坛会导致 Oops 错误 500,日志中有语法错误。

在更改 base_store.rb 后,论坛似乎工作正常。我只是无法重新构建它。仪表板显示我使用的是最新版本:3.0.4 (cec7c05dae)。当我点击升级链接时,它提示我应该通过 SSH 进行升级。我的 /var/discourse 位于提交 984d5495edfa8af028ab6809407af817d555125c,这似乎是最新的一个,所以它可能只是说这个,因为应用尚未在此提交上重新构建。

出于好奇,您是如何通过浏览器界面安装插件的?

1 个赞

我认为我把插件和主题组件弄混了。只有主题组件是通过浏览器界面安装的。

2 个赞

啊——我认为这使得情况与通常略有不同,因为几乎所有的安装都运行 tests-passed。请参阅为什么 Discourse 默认总是安装“beta”版本?

2 个赞

感谢您报告此问题 @sigmike。Ruby 版本问题将通过重新构建来修复,因此我们的主要目标应该是让重新构建成功完成。

我在全新的 stable-branch 安装上重现了 Build Error。看起来 yarn(我们使用的 JS 包管理器)未能干净地将工作区从预安装的 ‘tests-passed’ 包降级到 stable 分支所需的版本。

中长期来看,我们的目标是放弃使用 yarn 作为包管理器。因此,目前我已在构建过程中添加了一个变通方法,该方法在为非 tests-passed 安装进行重新构建时将重置 node_modules 目录。如果您再次尝试重新构建,情况应该会好很多。

请告知我们结果!

9 个赞

这解决了重建问题,谢谢。

看起来 test-passed 版本实际上经过了更多的实战检验,而且重建也会更快,所以我可能会切换到那个版本。不过,该网站自 2016 年以来一直在 stable 版本上运行,没有出现问题。

5 个赞

IMO,使用稳定版应该可以在整个发布周期内坚持使用相同的基本映像,这是第一次(因为那一行需要 Ruby 3.2)使其成为不可能。

1 个赞

不幸的是,我们无法将基础镜像保持静态 6-12 个月。安装在 docker 镜像中的软件包会获得安全更新,我们必须将这些更新推广给稳定分支上的用户。

在此实例中,我们面临一个选择:是为稳定分支创建和维护一个完全独立的“Ruby 3.1”镜像,还是向后移植一些小的调整,以便稳定分支可以在最新镜像上运行。我们选择了后者,因为它工作量更少,风险也更低。这意味着每个人都在使用我们经过严格测试并在我们的托管上部署的相同镜像。

6 个赞