我昨天尝试为 https://creativecommunity.us 升级 Discourse。升级不成功,导致我们的网站离线。现在显示以下消息:
“哎呀
为这个讨论论坛提供支持的软件遇到了意外问题。我们对造成的不便深表歉意。
有关错误的详细信息已被记录,并生成了自动通知。我们会查看一下。
无需进一步操作。但是,如果错误状况持续存在,您可以通过在网站的反馈类别中发布讨论主题来提供更多详细信息,包括重现错误的步骤。”
这条消息说“我们会查看一下。”这通常需要多长时间?
谢谢 ~
我昨天尝试为 https://creativecommunity.us 升级 Discourse。升级不成功,导致我们的网站离线。现在显示以下消息:
“哎呀
为这个讨论论坛提供支持的软件遇到了意外问题。我们对造成的不便深表歉意。
有关错误的详细信息已被记录,并生成了自动通知。我们会查看一下。
无需进一步操作。但是,如果错误状况持续存在,您可以通过在网站的反馈类别中发布讨论主题来提供更多详细信息,包括重现错误的步骤。”
这条消息说“我们会查看一下。”这通常需要多长时间?
谢谢 ~
此消息显示给用户。我认为这里的“我们”指的是“你”。因此,作为管理员,仅仅等待并不能解决问题。![]()
你可以尝试重建。如果错误仍然存在,请将详细的错误粘贴到元(meta)上寻求帮助。![]()
您好,欢迎您,@Scott-CC ![]()
正如 Linca 所说,第二次重建通常可以给它一个推动并解决一些问题。![]()
不过,由于这是一个“错误”页面,如果某处存在冲突,您也可能在 /logs 中找到更多详细信息。
尝试安全模式也值得一试。这有助于将其缩小到一个插件或主题组件,然后您可以禁用它,同时找出确切的问题所在。
谢谢!
我试试。谢谢!
不幸的是,安全模式将我带回了相同的错误消息。有什么下一步的建议吗?
我对 Discourse 完全是新手(只是在帮助朋友),所以非常感谢您提供的任何帮助。
这应该是你的下一步:
如果这仍然不起作用,你可以通过以下方式查看日志:
docker exec app ls -l /shared/log/rails/
docker exec -it app tail -f /shared/log/rails/production.log
谢谢。抱歉,我对此完全是新手,但要访问日志,我必须登录到主机,对吗?(Digital Ocean)
而且我完全不知道“docker exec app”是什么。抱歉。
只有当 /logs 路径在网站上不起作用时(您需要以管理员身份登录)。
/logs 路径导致白屏 ![]()
能否分享一下该网站安装了哪些插件?我们或许能发现其中一个存在已知问题。\n\n在无法从日志或安全模式中获取任何额外详细信息的情况下,我认为可以尝试重建,看看是否能解决问题。如果您的 app.yml 中有任何非官方插件,也可以将其移除(然后重建),因为如果安全模式不起作用,它们通常是罪魁祸首。\n\n不过,也可以尝试管理员登录安全模式,以防网站需要登录会阻碍常规的安全模式路径。如果将 /u/admin-login 添加到您的网站地址,然后输入管理员邮箱并勾选安全模式选项,它将发送一个登录链接,或许能绕过当前的问题。这可能性不大,但仍有可能。 ![]()
抱歉,管理员登录不起作用。
我可以访问托管服务商 Digital Ocean 的后端,但它是终端命令行 Ubuntu,我不知道该在那里做什么。
我正在帮助一位朋友,她不知道安装了哪些插件。
我记得没多少;聊天插件和可能的一两个其他插件。
感谢您的帮助。
编辑:看起来我以前管理过您的网站。我现在正在重建它。您还需要进行 PostgreSQL 15 更新;我也完成了。
cd /var/discourse
./launcher rebuild app
这应该可以解决问题。大约需要 10 分钟。如果不行,请检查磁盘是否已满或是否需要交换空间。
df -h
free -h
有可能您需要添加交换空间。
如果那也失败了,您想用钱解决问题,请联系我,我会让您恢复正常运行。
You saved our bacon! Thank you!!
我遇到了和楼主一样的问题——我尝试通过界面升级,但失败了,导致网站下线。
我一直在尝试通过终端(AWS)进行更新,但 /launcher rebuild app 在运行大约半小时后就会卡住,无法继续进展。
我让它运行了一整夜,但毫无进展。事实上,它似乎锁定了实例,我不得不通过 AWS 控制台重新启动它,才能再次连接。
我原以为可能是重建空间不足,但即使将 EBS 容量加倍,似乎也没有帮助。
以下是我执行到的步骤:
[details=“摘要”]
欢迎使用 Ubuntu 24.04 LTS (GNU/Linux 6.8.0-1031-aws x86_64)
* 文档: https://help.ubuntu.com
* 管理: https://landscape.canonical.com
* 支持: https://ubuntu.com/pro
系统信息截至 2025年7月10日 星期四 14:26:49 UTC
系统负载: 0.13 进程数: 111
/ 分区使用率: 56.9% of 47.39GB 已登录用户: 0
内存使用率: 24% enX0 的 IPv4 地址: 172.31.60.182
交换分区使用率: 0%
应用程序的扩展安全维护未启用。
173 个更新可立即应用。
要查看这些额外更新,请运行: apt list --upgradable
启用 ESM Apps 以接收未来的额外安全更新。
请参阅 https://ubuntu.com/esm 或运行: sudo pro status
上次登录: 2025年7月10日 星期四 12:14:09 来自 18.206.107.28
ubuntu@ip-172-31-60-182:~$ cd /var/discourse/
ubuntu@ip-172-31-60-182:/var/discourse$ launcher stop app
launcher: 未找到命令
ubuntu@ip-172-31-60-182:/var/discourse$ /launcher stop app
-bash: /launcher: 没有那个文件或目录
ubuntu@ip-172-31-60-182:/var/discourse$ ./launcher stop app
无法连接到 docker 守护进程 - 请验证其是否正在运行且您有访问权限
ubuntu@ip-172-31-60-182:/var/discourse$ docker status
docker: 'status' 不是 docker 命令。
请查看 'docker --help'
ubuntu@ip-172-31-60-182:/var/discourse$ ./launcher update app
无法连接到 docker 守护进程 - 请验证其是否正在运行且您有访问权限
ubuntu@ip-172-31-60-182:/var/discourse$ ./launcher rebuild app
无法连接到 docker 守护进程 - 请验证其是否正在运行且您有访问权限
ubuntu@ip-172-31-60-182:/var/discourse$ docker version
客户端: Docker Engine - Community
版本: 27.1.2
API 版本: 1.46
Go 版本: go1.21.13
Git 提交: d01f264
构建时间: Mon Aug 12 11:50:54 2024
OS/架构: linux/amd64
上下文: default
尝试连接到 Docker 守护进程套接字 unix:///var/run/docker.sock 时被拒绝权限: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.46/version": dial unix /var/run/docker.sock: connect: 权限被拒绝
ubuntu@ip-172-31-60-182:/var/discourse$ sudo docker version
客户端: Docker Engine - Community
版本: 27.1.2
API 版本: 1.46
Go 版本: go1.21.13
Git 提交: d01f264
构建时间: Mon Aug 12 11:50:54 2024
OS/架构: linux/amd64
上下文: default
服务器: Docker Engine - Community
引擎:
版本: 27.1.2
API 版本: 1.46 (最低版本 1.24)
Go 版本: go1.21.13
Git 提交: f9522e5
构建时间: Mon Aug 12 11:50:54 2024
OS/架构: linux/amd64
实验性: false
containerd:
版本: 1.7.20
GitCommit: 8fc6bcff51318944179630522a095cc9dbf9f353
runc:
版本: 1.1.13
GitCommit: v1.1.13-0-g58aa920
docker-init:
版本: 0.19.0
GitCommit: de40ad0
ubuntu@ip-172-31-60-182:/var/discourse$ sudo su -
root@ip-172-31-60-182:~# cd /var/discourse
root@ip-172-31-60-182:/var/discourse# ./launcher update app
检测到 x86_64 架构。
用法: launcher 命令 配置文件 [--skip-prereqs] [--docker-args 字符串]
命令:
start: 启动/初始化容器
stop: 停止正在运行的容器
restart: 重启容器
destroy: 停止并移除容器
enter: 打开 shell 以在容器内运行命令
logs: 查看容器的 Docker 日志
bootstrap: 基于模板为配置引导容器
run: 在最后一次引导的镜像上下文中,使用配置运行给定命令
rebuild: 重建容器(销毁旧的,引导,启动新的)
cleanup: 移除所有已停止超过 24 小时的容器
start-cmd: 生成用于启动容器的 docker 命令
选项:
--skip-prereqs 不检查 launcher 先决条件
--docker-args 运行 docker 时传递的额外参数
--skip-mac-address 不分配 mac 地址
--run-image 覆盖用于运行容器的镜像
root@ip-172-31-60-182:/var/discourse# ./launcher run app
检测到 x86_64 架构。
无法在本地找到镜像 'local_discourse/app:latest'
docker: 来自守护进程的错误响应: 拉取访问被拒绝 local_discourse/app,仓库不存在或可能需要 'docker login': 拒绝: 请求的资源访问被拒绝。
请查看 'docker run --help'.
root@ip-172-31-60-182:/var/discourse# sudo ./launcher run app
检测到 x86_64 架构。
无法在本地找到镜像 'local_discourse/app:latest'
docker: 来自守护进程的错误响应: 拉取访问被拒绝 local_discourse/app,仓库不存在或可能需要 'docker login': 拒绝: 请求的资源访问被拒绝。
请查看 'docker run --help'.
root@ip-172-31-60-182:/var/discourse# ./launcher rebuild app
检测到 x86_64 架构。
确保 launcher 是最新的
Launcher 已是最新
2.0.20250710-0019: 从 discourse/base 拉取
摘要: sha256:9f9e69653b83259d951b2bc63393a9200a6a260db0a0b55bf85ab567f596c9a3
状态: discourse/base:2.0.20250710-0019 的镜像已是最新
docker.io/discourse/base:2.0.20250710-0019
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2025-07-10T14:34:06.749840 #1] INFO -- : 从标准输入读取
I, [2025-07-10T14:34:06.783263 #1] INFO -- : 文件 > /etc/service/postgres/run chmod: +x chown:
I, [2025-07-10T14:34:06.787190 #1] INFO -- : 文件 > /etc/service/postgres/log/run chmod: +x chown:
I, [2025-07-10T14:34:06.794555 #1] INFO -- : 文件 > /etc/runit/3.d/99-postgres chmod: +x chown:
I, [2025-07-10T14:34:06.800229 #1] INFO -- : 文件 > /root/install_postgres chmod: +x chown:
I, [2025-07-10T14:34:06.804200 #1] INFO -- : 文件 > /root/upgrade_postgres chmod: +x chown:
I, [2025-07-10T14:34:06.808529 #1] INFO -- : 在 /etc/postgresql/15/main/postgresql.conf 中将 data_directory = '/var/lib/postgresql/15/main' 替换为 data_directory = '/shared/postgres_data'
I, [2025-07-10T14:34:06.816873 #1] INFO -- : 在 /etc/postgresql/15/main/postgresql.conf 中将 (?-mix:#?listen_addresses *=.*) 替换为 listen_addresses = '*'
I, [2025-07-10T14:34:06.817572 #1] INFO -- : 在 /etc/postgresql/15/main/postgresql.conf 中将 (?-mix:#?synchronous_commit *=.*) 替换为 synchronous_commit = $db_synchronous_commit
I, [2025-07-10T14:34:06.821784 #1] INFO -- : 在 /etc/postgresql/15/main/postgresql.conf 中将 (?-mix:#?shared_buffers *=.*) 替换为 shared_buffers = $db_shared_buffers
I, [2025-07-10T14:34:06.822781 #1] INFO -- : 在 /etc/postgresql/15/main/postgresql.conf 中将 (?-mix:#?work_mem *=.*) 替换为 work_mem = $db_work_mem
I, [2025-07-10T14:34:06.824081 #1] INFO -- : 在 /etc/postgresql/15/main/postgresql.conf 中将 (?-mix:#?default_text_search_config *=.*) 替换为 default_text_search_config = '$db_default_text_search_config'
I, [2025-07-10T14:34:06.825023 #1] INFO -- : 在 /etc/postgresql/15/main/postgresql.conf 中将 (?-mix:#?checkpoint_segments *=.*) 替换为 checkpoint_segments = $db_checkpoint_segments
I, [2025-07-10T14:34:06.826225 #1] INFO -- : 在 /etc/postgresql/15/main/postgresql.conf 中将 (?-mix:#?logging_collector *=.*) 替换为 logging_collector = $db_logging_collector
I, [2025-07-10T14:34:06.827143 #1] INFO -- : 在 /etc/postgresql/15/main/postgresql.conf 中将 (?-mix:#?log_min_duration_statement *=.*) 替换为 log_min_duration_statement = $db_log_min_duration_statement
I, [2025-07-10T14:34:06.829174 #1] INFO -- : 在 /etc/postgresql/15/main/pg_hba.conf 中将 (?-mix:^#local +replication +postgres +peer$) 替换为 local replication postgres peer
I, [2025-07-10T14:34:06.831036 #1] INFO -- : 在 /etc/postgresql/15/main/pg_hba.conf 中将 (?-mix:^host.*all.*all.*127.*$) 替换为 host all all 0.0.0.0/0 md5
I, [2025-07-10T14:34:06.831299 #1] INFO -- : 在 /etc/postgresql/15/main/pg_hba.conf 中将 (?-mix:^host.*all.*all.*::1\/128.*$) 替换为 host all all ::/0 md5
I, [2025-07-10T14:34:06.832342 #1] INFO -- : > if [ -f /root/install_postgres ]; then
/root/install_postgres && rm -f /root/install_postgres
elif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then
socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
fi
2025/07/10 14:34:09 socat[33] E connect(, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): 连接被拒绝
I, [2025-07-10T14:34:09.325619 #1] INFO -- : 生成语言环境(这可能需要一段时间)...
en_US.UTF-8... 完成
生成完成。
I, [2025-07-10T14:34:09.326466 #1] INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/15/bin/postmaster -D /etc/postgresql/15/main
I, [2025-07-10T14:34:09.336782 #1] INFO -- : 文件 > /usr/local/bin/create_db chmod: +x chown:
I, [2025-07-10T14:34:09.356777 #1] INFO -- : 文件 > /var/lib/postgresql/take-database-backup chmod: +x chown: postgres:postgres
I, [2025-07-10T14:34:09.369678 #1] INFO -- : 文件 > /var/spool/cron/crontabs/postgres chmod: chown:
I, [2025-07-10T14:34:09.370276 #1] INFO -- : > sleep 5
2025-07-10 14:34:09.616 UTC [38] LOG: 正在启动 PostgreSQL 15.13 (Debian 15.13-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
2025-07-10 14:34:09.618 UTC [38] LOG: 正在监听 IPv4 地址 "0.0.0.0", 端口 5432
2025-07-10 14:34:09.618 UTC [38] LOG: 正在监听 IPv6 地址 "::", 端口 5432
2025-07-10 14:34:09.624 UTC [38] LOG: 正在监听 Unix 套接字 "/var/run/postgresql/.s.PGSQL.5432"
2025-07-10 14:34:09.651 UTC [49] LOG: 数据库系统被中断;最后一次已知启动时间为 2025-07-10 12:26:43 UTC
2025-07-10 14:34:09.723 UTC [49] LOG: 数据库系统未正常关闭;正在进行自动恢复
2025-07-10 14:34:09.732 UTC [49] LOG: 重做从 B/E8A9AB18 开始
2025-07-10 14:34:09.732 UTC [49] LOG: B/E8A9AC00 处的记录长度无效: 期望 24,得到 0
2025-07-10 14:34:09.732 UTC [49] LOG: 重做完成于 B/E8A9ABC8 系统使用情况: CPU: 用户: 0.00 s, 系统: 0.00 s, 经过: 0.00 s
2025-07-10 14:34:09.741 UTC [47] LOG: 检查点开始: 恢复结束立即等待
2025-07-10 14:34:09.758 UTC [47] LOG: 检查点完成: 写入 3 个缓冲区 (0.0%); 0 个 WAL 文件添加, 0 个移除, 0 个回收; write=0.005 s, sync=0.002 s, total=0.020 s; sync files=2, longest=0.001 s, average=0.001 s; distance=0 kB, estimate=0 kB
2025-07-10 14:34:09.780 UTC [38] LOG: 数据库系统已准备好接受连接
I, [2025-07-10T14:34:14.374060 #1] INFO -- :
I, [2025-07-10T14:34:14.374950 #1] INFO -- : > /usr/local/bin/create_db
2025-07-10 14:34:14.556 UTC [56] postgres@postgres ERROR: 数据库 "discourse" 已存在
2025-07-10 14:34:14.556 UTC [56] postgres@postgres STATEMENT: CREATE DATABASE discourse;
createdb: 错误: 数据库创建失败: ERROR: 数据库 "discourse" 已存在
2025-07-10 14:34:14.653 UTC [59] postgres@discourse ERROR: 角色 "discourse" 已存在
2025-07-10 14:34:14.653 UTC [59] postgres@discourse STATEMENT: create user discourse;
ERROR: 角色 "discourse" 已存在
NOTICE: 扩展 "hstore" 已存在,跳过
NOTICE: 扩展 "pg_trgm" 已存在,跳过
NOTICE: 扩展 "vector" 已存在,跳过
NOTICE: 扩展 "vector" 的版本 "0.8.0" 已安装
NOTICE: 扩展 "hstore" 已存在,跳过
NOTICE: 扩展 "pg_trgm" 已存在,跳过
NOTICE: 扩展 "vector" 已存在,跳过
NOTICE: 扩展 "vector" 的版本 "0.8.0" 已安装
I, [2025-07-10T14:34:15.375245 #1] INFO -- : GRANT
ALTER SCHEMA
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
ALTER EXTENSION
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
ALTER EXTENSION
UPDATE 0
I, [2025-07-10T14:34:15.375613 #1] INFO -- : > echo postgres installed!
I, [2025-07-10T14:34:15.380090 #1] INFO -- : postgres installed!
I, [2025-07-10T14:34:15.384491 #1] INFO -- : 文件 > /etc/service/redis/run chmod: +x chown:
I, [2025-07-10T14:34:15.388524 #1] INFO -- : 文件 > /etc/service/redis/log/run chmod: +x chown:
I, [2025-07-10T14:34:15.392347 #1] INFO -- : 文件 > /etc/runit/3.d/10-redis chmod: +x chown:
I, [2025-07-10T14:34:15.394875 #1] INFO -- : 在 /etc/redis/redis.conf 中将 daemonize yes 替换为
I, [2025-07-10T14:34:15.400010 #1] INFO -- : 在 /etc/redis/redis.conf 中将 (?-mix:^pidfile.*$) 替换为
I, [2025-07-10T14:34:15.400706 #1] INFO -- : > install -d -m 0755 -o redis -g redis /shared/redis_data
I, [2025-07-10T14:34:15.407363 #1] INFO -- :
I, [2025-07-10T14:34:15.407683 #1] INFO -- : 在 /etc/redis/redis.conf 中将 (?-mix:^logfile.*$) 替换为 logfile ""
I, [2025-07-10T14:34:15.408567 #1] INFO -- : 在 /etc/redis/redis.conf 中将 (?-mix:^bind .*$) 替换为
I, [2025-07-10T14:34:15.409953 #1] INFO -- : 在 /etc/redis/redis.conf 中将 (?-mix:^dir .*$) 替换为 dir /shared/redis_data
I, [2025-07-10T14:34:15.411380 #1] INFO -- : 在 /etc/redis/redis.conf 中将 (?-mix:^protected-mode yes) 替换为 protected-mode no
I, [2025-07-10T14:34:15.412629 #1] INFO -- : 在 /etc/redis/redis.conf 中将 # io-threads 4 替换为 io-threads $redis_io_threads
I, [2025-07-10T14:34:15.413828 #1] INFO -- : > echo redis installed
I, [2025-07-10T14:34:15.415894 #1] INFO -- : redis installed
I, [2025-07-10T14:34:15.416407 #1] INFO -- : > cat /etc/redis/redis.conf | grep logfile
I, [2025-07-10T14:34:15.422899 #1] INFO -- : logfile ""
I, [2025-07-10T14:34:15.423444 #1] INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2025-07-10T14:34:15.426194 #1] INFO -- : > sleep 10
105:C 10 Jul 2025 14:34:15.460 # oO0OoO0OoO0Oo Redis 正在启动 oO0OoO0OoO0Oo
105:C 10 Jul 2025 14:34:15.460 # Redis 版本=7.0.15, 位=64, commit=00000000, modified=0, pid=105, 刚刚启动
105:C 10 Jul 2025 14:34:15.460 # 配置已加载
105:M 10 Jul 2025 14:34:15.460 * 单调时钟: POSIX clock_gettime
105:M 10 Jul 2025 14:34:15.464 * 运行模式=独立, 端口=6379.
105:M 10 Jul 2025 14:34:15.465 # 服务器已初始化
105:M 10 Jul 2025 14:34:15.465 # 警告 必须启用内存超卖!否则,在内存不足的情况下,后台保存或复制可能会失败。如果禁用,即使在没有内存不足的情况下,也可能导致失败,请参阅 https://github.com/jemalloc/jemalloc/issues/1328。要解决此问题,请将 'vm.overcommit_memory = 1' 添加到 /etc/sysctl.conf 并重启,或运行命令 'sysctl vm.overcommit_memory=1' 使其生效。
105:M 10 Jul 2025 14:34:15.465 # 警告 您的系统配置为使用 'xen' 时钟源,这可能导致性能下降。检查 [slow-clocksource] 系统检查的结果:运行 'redis-server --check-system' 以检查系统的时钟源是否正在降低性能。
105:M 10 Jul 2025 14:34:15.471 * 加载由版本 7.0.15 生成的 RDB
105:M 10 Jul 2025 14:34:15.471 * RDB 年龄 7659 秒
105:M 10 Jul 2025 14:34:15.471 * RDB 创建时的内存使用量 7.58 Mb
105:M 10 Jul 2025 14:34:15.505 * RDB 加载完成,加载的键: 1240, 过期的键: 18.
105:M 10 Jul 2025 14:34:15.505 * 从磁盘加载数据库: 0.036 秒
105:M 10 Jul 2025 14:34:15.505 * 准备接受连接
I, [2025-07-10T14:34:25.428346 #1] INFO -- :
I, [2025-07-10T14:34:25.428571 #1] INFO -- : > thpoff echo "thpoff is installed!"
I, [2025-07-10T14:34:25.433266 #1] INFO -- : thpoff is installed!
I, [2025-07-10T14:34:25.434051 #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, [2025-07-10T14:34:25.623161 #1] INFO -- :
I, [2025-07-10T14:34:25.623817 #1] INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_HOSTNAME"] == "discourse.example.com"; puts "Aborting! Domain is not configured!"; exit 1; end'
I, [2025-07-10T14:34:25.707792 #1] INFO -- :
I, [2025-07-10T14:34:25.708514 #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, [2025-07-10T14:34:25.792429 #1] INFO -- :
I, [2025-07-10T14:34:25.793174 #1] INFO -- : > rm -f /etc/cron.d/anacron
I, [2025-07-10T14:34:25.798896 #1] INFO -- :
I, [2025-07-10T14:34:25.801342 #1] INFO -- : 文件 > /etc/cron.d/anacron chmod: chown:
I, [2025-07-10T14:34:25.808492 #1] INFO -- : 文件 > /etc/runit/1.d/copy-env chmod: +x chown:
I, [2025-07-10T14:34:25.812525 #1] INFO -- : 文件 > /etc/service/unicorn/run chmod: +x chown:
I, [2025-07-10T14:34:25.816576 #1] INFO -- : 文件 > /etc/service/nginx/run chmod: +x chown:
I, [2025-07-10T14:34:25.820635 #1] INFO -- : 文件 > /etc/runit/3.d/01-nginx chmod: +x chown:
I, [2025-07-10T14:34:25.824561 #1] INFO -- : 文件 > /etc/runit/3.d/02-unicorn chmod: +x chown:
I, [2025-07-10T14:34:25.825004 #1] INFO -- : 在 /etc/service/unicorn/run 中将 # postgres 替换为 if [ -f /root/install_postgres ]; then
/root/install_postgres
rm /root/install_postgres
fi
sv start postgres || exit 1
I, [2025-07-10T14:34:25.826554 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git clean -f
I, [2025-07-10T14:34:26.964358 #1] INFO -- :
I, [2025-07-10T14:34:26.964998 #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 tests-passed
git fetch --depth 1 origin tests-passed
else
git fetch --tags --prune-tags --prune --force origin
fi
'
来自 https://github.com/discourse/discourse
- [已删除] (无) -> origin/0-a-reactions
- [已删除] (无) -> origin/dev/gravatar-toggle-setting
- [已删除] (无) -> origin/dev/load-admin-bundles-for-staff-only
- [已删除] (无) -> origin/fix-composer-dmenu-tablets
- [已删除] (无) -> origin/fix-readonly-take-2
- [已删除] (无) -> origin/fix/mt/upload-optimization
63df79592..2e11eb20b main -> origin/main
+ 37e2eed7b...e8ef2f73b dev-floatkit-autocomplete-d-editor -> origin/dev-floatkit-autocomplete-d-editor (强制更新)
a42149b9f..5f1148cc8 dev-lock-alias -> origin/dev-lock-alias
* [新分支] dev/remove-automatic-backups-enabled -> origin/dev/remove-automatic-backups-enabled
* [新分支] edit-category-description-layout-fix -> origin/edit-category-description-layout-fix
4ebd596a2..75d289b97 feature/composer-toolbar-heading-list -> origin/feature/composer-toolbar-heading-list
44fb1a213..f07b9cbab feature/theme-site-settings -> origin/feature/theme-site-settings
7faaab65c..6043ede0a load-post-draft-from-reply-btn -> origin/load-post-draft-from-reply-btn
+ dcaa1a5cf...cae266b62 loic-upgrade-rails-8.0 -> origin/loic-upgrade-rails-8.0 (强制更新)
b1e0591e3..e8ef2f73b sandbox/dev-xp-1 -> origin/sandbox/dev-xp-1
876dbe662..530fbe111 sandbox/dev-xp-2 -> origin/sandbox/dev-xp-2
daabd040e..75d289b97 sandbox/member-xp-4 -> origin/sandbox/member-xp-4
* [新分支] send-email-when-signing-up-via-external-auth -> origin/send-email-when-signing-up-via-external-auth
* [新分支] skipped-address-filter -> origin/skipped-address-filter
f70640f77..a83bd0f67 stable -> origin/stable
6e03440b0..2e11eb20b tests-passed -> origin/tests-passed
* [新分支] translations-from-crowdin-main -> origin/translations-from-crowdin-main
* [新分支] translations-from-crowdin-stable -> origin/translations-from-crowdin-stable
I, [2025-07-10T14:34:28.010715 #1] INFO -- :
I, [2025-07-10T14:34:28.011023 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
set -o errexit
if [[ $(git symbolic-ref --short HEAD) == tests-passed ]] ; then
git pull
else
git -c advice.detachedHead=false checkout tests-passed
fi
'
切换到新分支 'tests-passed'
I, [2025-07-10T14:34:40.617744 #1] INFO -- : 分支 'tests-passed' 设置为跟踪 'origin/tests-passed'.
I, [2025-07-10T14:34:40.618255 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git config user.discourse-version tests-passed
I, [2025-07-10T14:34:40.629799 #1] INFO -- :
I, [2025-07-10T14:34:40.630226 #1] INFO -- : > cd /var/www/discourse && mkdir -p tmp
I, [2025-07-10T14:34:40.633195 #1] INFO -- :
I, [2025-07-10T14:34:40.633585 #1] INFO -- : > cd /var/www/discourse && chown discourse:www-data tmp
I, [2025-07-10T14:34:40.636417 #1] INFO -- :
I, [2025-07-10T14:34:40.636731 #1] INFO -- : > cd /var/www/discourse && mkdir -p tmp/pids
I, [2025-07-10T14:34:40.639770 #1] INFO -- :
I, [2025-07-10T14:34:40.640244 #1] INFO -- : > cd /var/www/discourse && mkdir -p tmp/sockets
I, [2025-07-10T14:34:40.643048 #1] INFO -- :
I, [2025-07-10T14:34:40.643395 #1] INFO -- : > cd /var/www/discourse && touch tmp/.gitkeep
I, [2025-07-10T14:34:40.648782 #1] INFO -- :
I, [2025-07-10T14:34:40.649284 #1] INFO -- : > cd /var/www/discourse && mkdir -p /shared/log/rails
I, [2025-07-10T14:34:40.653705 #1] INFO -- :
I, [2025-07-10T14:34:40.654203 #1] INFO -- : > cd /var/www/discourse && bash -c "touch -a /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log"
I, [2025-07-10T14:34:40.660408 #1] INFO -- :
I, [2025-07-10T14:34:40.660856 #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, [2025-07-10T14:34:40.669796 #1] INFO -- :
I, [2025-07-10T14:34:40.670284 #1] INFO -- : > cd /var/www/discourse && bash -c "mkdir -p /shared/{uploads,backups}"
I, [2025-07-10T14:34:40.674466 #1] INFO -- :
I, [2025-07-10T14:34:40.674928 #1] INFO -- : > cd /var/www/discourse && bash -c "ln -s /shared/{uploads,backups} /var/www/discourse/public"
I, [2025-07-10T14:34:40.680307 #1] INFO -- :
I, [2025-07-10T14:34:40.680774 #1] INFO -- : > cd /var/www/discourse && bash -c "mkdir -p /shared/tmp/{backups,restores}"
I, [2025-07-10T14:34:40.686442 #1] INFO -- :
I, [2025-07-10T14:34:40.686862 #1] INFO -- : > cd /var/www/discourse && bash -c "ln -s /shared/tmp/{backups,restores} /var/www/discourse/tmp"
I, [2025-07-10T14:34:40.691052 #1] INFO -- :
I, [2025-07-10T14:34:40.691529 #1] INFO -- : > cd /var/www/discourse && chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp
I, [2025-07-10T14:34:40.943384 #1] INFO -- :
I, [2025-07-10T14:34:40.943501 #1] INFO -- : > cd /var/www/discourse && [ ! -d public/plugins ] || find public/plugins/ -maxdepth 1 -xtype l -delete
I, [2025-07-10T14:34:40.946212 #1] INFO -- :
I, [2025-07-10T14:34:40.946735 #1] INFO -- : 在 /etc/service/unicorn/run 中将 # redis 替换为 if [ ! -d /shared/redis_data ]; then
install -d -m 0755 -o redis -g redis /shared/redis_data
fi
sv start redis || exit 1
I, [2025-07-10T14:34:40.947772 #1] INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/docker_manager.git
正在克隆到 'docker_manager'...
I, [2025-07-10T14:34:41.920020 #1] INFO -- :
I, [2025-07-10T14:34:41.920542 #1] INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/discourse-yearly-review
正在克隆到 'discourse-yearly-review'...
I, [2025-07-10T14:34:42.189827 #1] INFO -- :
I, [2025-07-10T14:34:42.190570 #1] INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/discourse-cakeday
正在克隆到 'discourse-cakeday'...
I, [2025-07-10T14:34:42.489411 #1] INFO -- :
I, [2025-07-10T14:34:42.489888 #1] INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/angusmcleod/discourse-ratings.git
正在克隆到 'discourse-ratings'...
I, [2025-07-10T14:34:42.792033 #1] INFO -- :
I, [2025-07-10T14:34:42.792683 #1] INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/discourse-calendar
正在克隆到 'discourse-calendar'...
I, [2025-07-10T14:34:43.546091 #1] INFO -- :
I, [2025-07-10T14:34:43.547502 #1] INFO -- : > cp /var/www/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf
I, [2025-07-10T14:34:43.561409 #1] INFO -- :
I, [2025-07-10T14:34:43.561632 #1] INFO -- : > rm /etc/nginx/sites-enabled/default
I, [2025-07-10T14:34:43.566037 #1] INFO -- :
I, [2025-07-10T14:34:43.566244 #1] INFO -- : > mkdir -p /var/nginx/cache
I, [2025-07-10T14:34:43.568477 #1] INFO -- :
I, [2025-07-10T14:34:43.569068 #1] INFO -- : > grep -q 'outlets/before-server' /etc/nginx/conf.d/discourse.conf || ( >&2 echo 'The "before-server" Nginx outlet is missing. This version of discourse_docker is not compatible with the chosen Discourse version.' ; exit 1 )
I, [2025-07-10T14:34:43.571902 #1] INFO -- :
I, [2025-07-10T14:34:43.572250 #1] INFO -- : > grep -q 'outlets/server' /etc/nginx/conf.d/discourse.conf || ( >&2 echo 'The "server" Nginx outlet is missing. This version of discourse_docker is not compatible with the chosen Discourse version.' ; exit 1 )
I, [2025-07-10T14:34:43.575152 #1] INFO -- :
I, [2025-07-10T14:34:43.575592 #1] INFO -- : > grep -q 'outlets/discourse' /etc/nginx/conf.d/discourse.conf || ( >&2 echo 'The "discourse" Nginx outlet is missing. This version of discourse_docker is not compatible with the chosen Discourse version.' ; exit 1 )
I, [2025-07-10T14:34:43.578518 #1] INFO -- :
I, [2025-07-10T14:34:43.578955 #1] INFO -- : > mkdir -p /etc/nginx/conf.d/outlets/before-server
I, [2025-07-10T14:34:43.581226 #1] INFO -- :
I, [2025-07-10T14:34:43.581753 #1] INFO -- : > touch /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf
I, [2025-07-10T14:34:43.583621 #1] INFO -- :
I, [2025-07-10T14:34:43.583900 #1] INFO -- : > touch /etc/nginx/conf.d/outlets/before-server/30-ratelimited.conf
I, [2025-07-10T14:34:43.586013 #1] INFO -- :
I, [2025-07-10T14:34:43.586181 #1] INFO -- : > mkdir -p /etc/nginx/conf.d/outlets/server
I, [2025-07-10T14:34:43.588522 #1] INFO -- :
I, [2025-07-10T14:34:43.589108 #1] INFO -- : > touch /etc/nginx/conf.d/outlets/server/10-http.conf
I, [2025-07-10T14:34:43.591027 #1] INFO -- :
I, [2025-07-10T14:34:43.591377 #1] INFO -- : > touch /etc/nginx/conf.d/outlets/server/20-https.conf
I, [2025-07-10T14:34:43.593154 #1] INFO -- :
I, [2025-07-10T14:34:43.593653 #1] INFO -- : > touch /etc/nginx/conf.d/outlets/server/30-offline-page.conf
I, [2025-07-10T14:34:43.595616 #1] INFO -- :
I, [2025-07-10T14:34:43.595991 #1] INFO -- : > mkdir -p /etc/nginx/conf.d/outlets/discourse
I, [2025-07-10T14:34:43.598072 #1] INFO -- :
I, [2025-07-10T14:34:43.598471 #1] INFO -- : > touch /etc/nginx/conf.d/outlets/discourse/20-https.conf
I, [2025-07-10T14:34:43.600421 #1] INFO -- :
I, [2025-07-10T14:34:43.601002 #1] INFO -- : > touch /etc/nginx/conf.d/outlets/discourse/30-ratelimited.conf
I, [2025-07-10T14:34:43.602883 #1] INFO -- :
I, [2025-07-10T14:34:43.604077 #1] INFO -- : 在 /etc/nginx/nginx.conf 中将 pid /run/nginx.pid; 替换为 daemon off;
I, [2025-07-10T14:34:43.606485 #1] INFO -- : 在 /etc/nginx/nginx.conf 中将 (?-mix:worker_connections.+$) 替换为 worker_connections $nginx_worker_connections;
I, [2025-07-10T14:34:43.606808 #1] INFO -- : 在 /etc/nginx/conf.d/discourse.conf 中将 (?-mix:client_max_body_size.+$) 替换为 client_max_body_size $upload_size;
I, [2025-07-10T14:34:43.607501 #1] INFO -- : > sed -i 's#listen 80;##g' /etc/nginx/conf.d/discourse.conf
I, [2025-07-10T14:34:43.611686 #1] INFO -- :
I, [2025-07-10T14:34:43.612254 #1] INFO -- : > if [ -f "/proc/net/if_inet6" ]; then
echo "listen 80;\nlisten [::]:80;" > /etc/nginx/conf.d/outlets/server/10-http.conf
else
echo "listen 80;" > /etc/nginx/conf.d/outlets/server/10-http.conf
fi
I, [2025-07-10T14:34:43.614205 #1] INFO -- :
I, [2025-07-10T14:34:43.614712 #1] INFO -- : > echo "done configuring web"
I, [2025-07-10T14:34:43.616568 #1] INFO -- : done configuring web
I, [2025-07-10T14:34:43.617121 #1] INFO -- : > cd /var/www/discourse && gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock)
I, [2025-07-10T14:34:44.144672 #1] INFO -- :
I, [2025-07-10T14:34:44.145379 #1] INFO -- : > cd /var/www/discourse && find /var/www/discourse ! -user discourse -exec chown discourse {} \+
I, [2025-07-10T14:34:58.288175 #1] INFO -- :
I, [2025-07-10T14:34:58.298580 #1] INFO -- : > cd /var/www/discourse && if [ -f yarn.lock ]; then
if [ -d node_modules/.pnpm ]; then
echo "This version of Discourse uses yarn, but pnpm node_modules are preset. Cleaning up..."
find ./node_modules ./app/assets/javascripts/*/node_modules -mindepth 1 -maxdepth 1 -exec rm -rf {} +
fi
su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
else
su discourse -c 'CI=1 pnpm install --frozen-lockfile && pnpm prune'
fi
I, [2025-07-10T14:35:07.928627 #1] INFO -- : 范围: 所有 16 个工作区项目
锁文件已是最新,跳过解析步骤
已是最新
使用 pnpm v9.15.9 在 5.4s 内完成
锁文件已是最新,跳过解析步骤
已是最新
I, [2025-07-10T14:35:07.934991 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle install --jobs $(($(nproc) - 1)) --retry 3'
I, [2025-07-10T14:35:09.407430 #1] INFO -- : Bundle 完成!143 个 Gemfile 依赖项,190 个 gems 已安装。
未安装 'test' 和 'development' 组中的 gems。
捆绑的 gems 已安装到 `./vendor/bundle`
您直接依赖的 3 个已安装 gems 正在寻求资助。
运行 `bundle fund` 以获取详细信息
I, [2025-07-10T14:35:09.407945 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle clean'
I, [2025-07-10T14:35:09.843516 #1] INFO -- :
I, [2025-07-10T14:35:09.844596 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'find /var/www/discourse/vendor/bundle -name cache -not -path "*/gems/*" -type d -exec rm -rf {} +'
I, [2025-07-10T14:35:13.000166 #1] INFO -- :
I, [2025-07-10T14:35:13.000275 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'find /var/www/discourse/vendor/bundle -name tmp -type d -exec rm -rf {} +'
I, [2025-07-10T14:35:13.145199 #1] INFO -- :
I, [2025-07-10T14:35:13.150515 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all'
I, [2025-07-10T14:35:19.066578 #1] INFO -- : discourse-cakeday 已是最新兼容版本
discourse-calendar 已是最新兼容版本
discourse-ratings 已是最新兼容版本
discourse-yearly-review 已是最新兼容版本
docker_manager 已是最新兼容版本
[/details]我在更新时遇到了错误
```ruby
api_key = "a quick brown fox"
fetch("https://api.example.com/data", headers: { 'Authorization' => api_key })
请帮我修复它。
小更新 – 我增加了交换空间,这似乎让更新得以完成。可惜的是,尽管应用似乎在 Docker 中运行,但我的网站仍然无响应。