Oogiem
(Oogie McGuire)
1
我正在尝试更新一个非常旧的安装。
我开始时是这样做的:
cd /var/discourse
sudo git pull
sudo ./launcher rebuild app
然后我收到一个失败的错误,向上滚动日志文件,唯一的错误是这个:
ERROR: Error installing bundler:
bundler-2.5.3 requires Ruby version >= 3.0.0. The current ruby version is 2.7.2.137.
我该如何获取新的 Ruby 安装?系统最初是从 Digital Ocean 的 Docker 镜像安装的,并且多年来几乎没有或根本没有升级过。
它运行在 Ubuntu 18.04 上。
我运行了 ./discourse-doctor
然后出现了一个分离头状态,然后重建,然后是相同的 Ruby 错误。
我现在完全迷失了。
关于如何从旧版本升级的任何帮助?
您的容器镜像可能固定在一个非常旧的 Discourse 基础镜像上。
您能否在此处发布(已编辑)的容器配置?
Oogiem
(Oogie McGuire)
3
我不知道该怎么做,但从 discourse doctor 的输出中,我发现了这个:
DOCKER VERSION:Docker version 19.03.1, build 74b1e89
而且它是 3 年前创建的。
1 个赞
考虑到主机的使用年限,这里最好的办法可能是备份网站,创建一个新服务器,进行安装,然后将备份恢复到新服务器上。
这比升级现有服务器的工作量要小(而且容易得多)。
2 个赞
Oogiem
(Oogie McGuire)
5
但是由于安装失败,我无法运行 Discourse 来进行备份。我可以并且已经拍摄了 DigitalOcean 滴管的快照,但据我所理解,那并不是真正的备份。
Firepup650
(Firepup Sixfifty)
6
您应该能够直接运行 ./launcher start app 来重启到旧站点。
1 个赞
Oogiem
(Oogie McGuire)
7
尝试了那个,现在出现 502 坏网关问题 :sigh:
1 个赞
pfaffman
(Jay Pfaffman)
8
我将把旧的 /var/discourse rsync 到新服务器。或者只 containers 和 shared。
Oogiem
(Oogie McGuire)
9
好吧,我在这方面完全超出了我的能力范围,所以我的解决方案是去市场发布一个付费的“诚聘”广告 
2 个赞
如果您有一个包含所有数据的 droplet 快照,是在尝试更新容器之前拍摄的,那么您应该可以从中获取备份。
如果不是,您几乎肯定还是没问题的,但您需要一个熟悉该过程的人来从容器中提取数据,如果您无法让容器重新启动并运行的话。
现在,即使出现“网关错误”,如果您能进入容器,您应该可以运行 discourse backup 来获取您的数据。
4 个赞