本指南提供了在自托管环境中手动更新 Discourse、Docker 容器和 Ubuntu 操作系统的一步一步的说明。
所需用户级别:系统管理员
需要 SSH 访问服务器。
如果您自托管 Discourse,您需要不时地通过命令行运行手动更新,以获取最新的安全补丁和最新的库。
这些更新不会在
admin/upgrade中被检测到,这就是您偶尔需要执行这些额外步骤的原因:更新 Discourse
Discourse 本身应该大约每半个月更新一次,方法是点击您的管理仪表板(
admin/upgrade)中的“更新到最新版本”按钮。我们建议每两个月通过 SSH 连接到您的 Web 服务器(使用 putty 或您最喜欢的 SSH 客户端)并运行以下命令,特别是当升级页面未显示或您在尝试升级时遇到任何问题时。
cd /var/discourse ./launcher rebuild app更新 Docker 镜像和 Ubuntu 操作系统
对于 Ubuntu 更新,请_务必_为您的 Ubuntu 启用自动安全更新!命令是:
dpkg-reconfigure -plow unattended-upgrades然而,这只涵盖了关键安全更新。您应该时不时地像这样获取所有操作系统更新:
apt-get update apt-get dist-upgrade这也将通过标准的
docker-ce包保持 Docker 的最新状态。总结一下:
- 每半个月通过 Web 更新器更新 Discourse
- 每两个月更新容器
- 每六个月更新操作系统
您可以将这些数字加倍,仍然相当安全,例如,每月更新一次 Discourse,每 4 个月更新一次容器,每年更新一次操作系统,依此类推。
但您真的、_真的_需要启用 Ubuntu 中的自动安全更新,如上所述。
常见问题解答
什么时候是正确的更新时间?
这完全取决于您可用的时间和您想保持在最新技术前沿的程度。如果您有非官方插件,强烈建议使用测试/暂存站点。如果您没有任何非官方插件,您可能会立即升级,但即使如此,一些插件可能也会在团队修复它们期间出现几天的中断(插件数量很多)。
安装了许多插件时,常见的做法是什么?
如果您安装了许多插件,强烈建议在本地或测试服务器上进行测试。特别是如果您有非官方插件,因为某些东西可能会损坏。如果您发现任何东西确实损坏了,那么问题在于,您是否有时间修复它?原始插件作者是否有时间修复它?这两者都可能需要数周时间。所以至少以这种方式,您只有一个损坏的测试站点,而不是一个损坏的生产站点。
我的磁盘空间不足
如果您的磁盘空间不足(使用
df检查),请尝试使用以下命令清理旧映像:./launcher cleanup apt-get autoclean apt-get autoremove更新实际的 Ubuntu 服务器版本重要吗,因为 Discourse 始终在 Docker 中运行?
它的重要性要小得多。但您至少应该使用目前受支持的 Ubuntu 服务器 LTS 版本。需要 64 位 Linux 操作系统和现代内核版本。
178 个赞
