Discourse 如何进行程序的更新

单击 Discourse 的 admin 界面。

如果你的服务器运行版本和当前 git 的版本不一样的话,你将会在界面中看到下面要求更新的提示。

如下图:

单击上面的链接进行升级。

在升级之前,你会看到当前版本升级所做的修改。

你单击上面修改commit 的链接将会直接带你进入到 GitHub 的页面中。

单击进入 GitHub

单击上面的链接后进入 GitHub 的提交列表中。

比较赞赏 Discourse 的这个功能,这个功能提供的是完全的开源和透明,能够让用户和软件同时成长。

大大的点赞。

升级

单击继续后,会有一个按钮需要你单击进行升级。

随后继续,你也可以重置升级。

这个升级过程需要耗费一些时间,因为首先需要 Pull 请求,然后还需要对请求进行编译。

当升级完成后,你将会看到下面升级已经完成的界面。

随后你可以单击上面的返回站点按钮校验你的站点能否被正常访问。

同时你可以可以查看管理员界面中当前的版本是是最新的版本。

为了安全,我们建议你可以对 Discourse 进行必要的升级。

之前通过在线升级 ,不知道怎么的,docker_manager这个插件升级过程挂了。而且那个时候,Rest Upgrade 摁钮不能点击。

从此以后,它都是一直卡在这个界面。再也不能 在线升级 。每次更新我都去手动rebuild app:joy:

现在我发现Rest Upgrade 可以点击了,但是我不知道会有什么后果。不敢点击确定。

想解决这个问题,楼主有什么好的建议吗?

帮你找了下官方的内容:

https://meta.discourse.org/t/how-do-i-manually-update-discourse-and-docker-image-to-latest/23325https://meta.discourse.org/t/not-able-to-reset-upgrades/100419

也许你可以参考下。

我们在升级的时候没有遇到上面的情况,基本上都非常顺利。

感觉可能有几个地方需要考虑下:

你主机的配置情况,是否有足够的空间,内存和 CPU 是否足够大。虽然 Discourse·说的是 1G 内存也能用,但是如果要跑得顺畅点还得用 2G 或者 2G 以上的内存。

硬盘,上面是不是有足够的空间?

网络情况是否有问题,你的 VPS 在那里呢?如果在外面的话可能访问 GitHub 容易点,如果在里面的话,有时候连接会被重置。

GIt Pull 一次,然后再在后台升级一次看看。

上面是我能想到可能可以进行调试的方向了。另外我们的附件和备份全部是存 S3 的,所以在备份的时候资源消耗比较少。

近期我们在做服务器迁移的时候,发现如果服务器的资源不够的话,在备份的时候可能会导致 Docker 进程挂起,网站访问不了。

我升级了下看看。

首先看到的应该是 unicorn 重启。

********************************************************
*** Please be patient, next steps might take a while ***
********************************************************
Cycling Unicorn, to free up memory
Restarting unicorn pid: 244
Waiting for Unicorn to reload.
Waiting for Unicorn to reload..
Waiting for Unicorn to reload...
Waiting for Unicorn to reload....
Waiting for Unicorn to reload.....
Waiting for Unicorn to reload......
Waiting for Unicorn to reload.......
Waiting for Unicorn to reload........
Waiting for Unicorn to reload.........

在这里我看你的升级过程没有被启动,感觉有可能是不是你的容器中的 unicorn 通讯有点问题?

是不是可以考虑重启下服务器,再试试。


谢谢大佬,我参考这个方法,进入docker容器内部,刷出redis的key,搞定了。 :grin: