升级 Docker OS (bullseye) 的正确方法

我需要升级当前的 Debian(bullseye) 操作系统,以更新被标记的软件包。是否有相关的文档或步骤?

谢谢

这不是 Discourse 的问题,而是操作系统的问题。有很多网站介绍了如何升级你的操作系统。

我的建议是创建一个带有新操作系统的新虚拟机,然后将 Discourse 站点迁移到另一台 VPS 并使用 rsync

2 个赞

在 discourse 安装期间安装的 docker 操作系统,而不是宿主操作系统。

您可以在 app.yml 中添加常用命令

1 个赞

您想在容器内升级 Debian?

谁在标记什么?

但如果您的意思是这样,您可以:

./launcher enter app
apt-get update
apt-get upgrade

这可能不会破坏任何东西。但我还是不推荐这样做。

如果这确实是您的意思,那么您可以将它们添加为 exec 节。您可以参考 templates/import/mysql-dep.template.yml 作为示例。

是的,因为我认为这是我唯一的选择,所以容器内部使用 Debian。

例如,我们的安全团队已经标记了 Node.js 18.x、libcurl、openssl 的漏洞。以 libcurl 为例,我目前的版本是 7.4,这似乎是 bullseye 中最新的版本,但为了合规,它需要是 8.4,其他软件包也需要跟进。

./launcher enter app
apt-get update
apt-get upgrade

我已经运行了这些命令来更新 bullseye,但没有成功。

是的。事情没那么简单。没有“升级 Docker OS(bullseye)的正确方法”。

你可以设想修改 https://github.com/discourse/discourse_docker/blob/main/image/base/slim.Dockerfile 来构建一个你的 IT 团队会批准的镜像。我猜我会从使用最新的 Debian 作为基础镜像开始。我可能会花一周时间来完成它,但很容易需要一半或两倍的时间,前提是 Discourse 代码库甚至能与新版本兼容(它可能可以,但无法确定)。

构建一个能正常工作并满足你合规要求的镜像将非常耗时,而且可能比使用由 Discourse 团队测试并适用于数千个站点的标准镜像更危险。你将运行一个只有你自己知道的镜像。当它出现问题时,你将无法在此获得任何支持,因为无法确定问题是出在代码上还是出在 Discourse 尚不支持的某个库上。

每次升级时,你都需要预留时间来查看 Discourse 的更新是否与你的镜像兼容。

如果你的 IT 人员坚持这些更新,那么你可能应该考虑其他平台。

嘿,这里一位知名的开发者说他总是在他的开发版本中使用最新的 Node LTS,并建议这样做应该没问题。

所以这意味着你的 Node 问题应该完全没问题。

libcurl 以非向后兼容的方式破坏东西似乎不太可能,所以也许你的任务不像我想象的那么难。所以,对于熟悉各种组件的人来说,可能只需要 1-5 个小时的工作。

所以我想你只需要 fork discourse_docker,然后在 slim.Dockerfile 中更改几行,也许它就能正常工作,而且根本不是什么大问题。

1 个赞