我今天收到了第一条消息:您正在运行旧版本的 Discourse 镜像。在运行最新镜像之前,无法通过 Web UI 进行升级,我认为我的安装已出现问题。
我按照说明操作,由于我的托管提供商不允许创建 root 用户,因此每条命令都使用 sudo 执行:
cd /var/discourse
sudo git pull
sudo ./launcher rebuild app
由于出现关于冲突的错误,我不得不在执行 pull 之前先运行 sudo git stash。
一切似乎进展顺利(我等待了一个多小时),但随后我的终端会话关闭了(出现 broken pipe 错误)。为了解决这个问题,我将服务器上的 ClientAliveInterval 设置为 60(此前该选项被注释掉了),然后重启并重试。
现在,当重新构建脚本运行时,它在停止 Docker 容器时崩溃。
我尝试通过在执行重新构建脚本之前运行 docker kill <id> 来绕过此问题,但同样的崩溃仍然发生(CPU 占用率持续 100% 约 15 分钟……然后数小时无响应)。
重启后,网站仍然可以访问,但我无法更新它(UI 更新器仍显示我运行的是旧版 Discourse 镜像)。
非常感谢任何建议。
pfaffman
(Jay Pfaffman)
2
如果不查看构建输出,很难猜测。
您可以尝试使用 tmux(或类似工具)在断开连接时保持会话打开(您可以使用 tmux attach 重新连接到该会话)。
不妨看看 PostgreSQL 13 更新?
谢谢 Jay,我想我已经找到问题了。
我的 VPS 提供商 webdock.io(顺便说一句,他们非常棒)不支持 ZFS,因为他们在宿主机层面使用了它;我被告知嵌套 ZFS 是不可行的。他们也不推荐在我的安装中使用 overlay2,而是建议我编辑 launcher 文件,在其中添加 vfs 存储驱动(默认情况下并不包含此项)。
171 Storage Driver: (vfs|aufs|zfs|overlay2)
⬆️
我怀疑 sudo git pull 覆盖了这一设置,随后我尝试使用错误的存储驱动重新构建?
我已经将所有内容回滚,并在运行 rebuild app 之前重新编辑了 launcher,现在一切正常了。
cd /var/discourse
sudo git stash
sudo git pull
sudo nano launcher
然后编辑第 171 行,添加 vfs
sudo ./launcher rebuild app
嘿 @ajmuir,
我知道您的问题在一年前就已经解决了,但我想为这个讨论贡献我的看法,同时也为找到此帖子的新用户指明正确的方向。
Webdock(现在)建议使用 fuse-overlayfs 作为 Docker 存储驱动程序:How to change the Docker storage driver – Webdock
原因是 vfs 会产生大量的磁盘空间使用量。
但对 Docker 使用 fuse-overlayfs 会在 Discourse 启动器端产生警告或错误,因为它不是推荐的驱动程序。
我在我的博客上的这篇帖子中详细介绍了如何解决这个问题:Deploying Discourse on a Webdock server
您也可以像您那样做,将已安装的驱动程序添加到 egrep 语句中。
您为什么说 Webdock 不允许创建 root 用户?
您可以简单地使用 sudo su 切换到 root 用户,然后执行 Discourse 安装指南中的命令。