多年来我一直在运行 Discourse,除了一个反复出现的问题外,我的体验一直非常棒:
每当我看到更新屏幕上出现**“您正在运行旧版本的 Discourse 镜像”**时,我都会脸色苍白,感到一阵强烈的恐惧。
为什么?
因为我知道我将不得不在命令行上与我的 DigitalOcean 实例搏斗——这通常是我最讨厌的事情——几个小时才能顺利完成升级。
而这一次,我似乎根本无法让它正常工作 
据我所知,我的可用空间被 /dev/vda1 目录占用了。但是当我检查这个目录时,根据不同的方法,我得到的反馈也不同!
下图说明了这种奇怪的现象。请注意,在上半部分(来自 df -h 命令),/dev/vda1 文件夹似乎有 7.1GB 的可用空间。
但请注意,启动器却说同一个文件夹只有 4GB 的可用空间!
有人能提供更多见解吗?
具体来说,我想寻求关于为什么两种不同的文件查看方法会返回两种不同的可用空间量的建议。
然后,我很想知道如何利用这 7.1GB 的可用空间来执行升级。
(为了澄清,我不想要像“只需升级你的 DO 实例”这样的懒惰回复——如果我想让这个论坛的年度开销翻倍,我早就这么做了。)
谢谢!
4 个赞
pfaffman
(Jay Pfaffman)
2
这确实令人沮丧。您可以尝试
docker prune
可能有一些 Docker 创建但忘记了的资源。最近有一个关于此的主题。
但是,在 Docker 不希望它存在的地方拥有空间是无济于事的。启动器可能在错误的位置进行检查,这是可能的,但不太可能。
4 个赞
对于这次特定的重建,您需要下载一个新的基础映像,如屏幕截图中的 WARNING 到 Status 行所示。根据我的系统,这个映像很大,有 2.81GB,所以您看到的是丢失给这个新版本基础映像的空间。
# docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
discourse/base latest ab71a5d97460 4 days ago 2.81GB
使用 ./launcher cleanup 将清除未使用的容器和映像,这可能会回收足够的空间,正如 @pfaffman 所说,直接使用 docker 进行修剪可以清除更多未使用的对象,尽管我个人除了容器和映像之外没有看到任何显著的好处。
另一个可能有帮助的方法是清除 apt 缓存,它可能会变得非常大。
apt-get clean
5 个赞
这正是我所想的——对于这次特定的更新,你似乎需要 5GB + 2.811GB 来存储新的 Docker 镜像。
这是真的吗?如果真是这样,似乎会影响 很多 人……
1 个赞
我尝试了所有我能找到的修剪/移除/清理/医生命令,但底线似乎是,除非给定的机器上有 7.811GB 的可用空间,否则这行不通。
如果是这样,我不明白为什么 25GB 的 DO 实例仍然被推荐为起始条件 
另外,这里有一个导致我得出上述结论的过程示例:
开始:
6.9GB 可用,72% 已使用
运行 ./launcher rebuild app 后:
3.7GB 可用,85% 已使用
我看不出还有其他出路,但我希望其他人能找到!
2 个赞
Falco
(Falco)
6
在下载 discourse 容器镜像 之前,您有 7.1GB 的可用空间,但在我们执行检查时,下载 之后 可用空间不到 5GB。
您有两个选择:
-
运行 ./launcher rebuild app --skip-prereqs 来绕过磁盘空间检查
-
增加您的磁盘大小
如果您选择 1,您只是暂时推迟了问题,但随着您的社区和 Discourse 的不断发展,您最终将不得不处理磁盘使用问题。
8 个赞
我在 Vultr 上有 25 GB 的云 SSD
在 Ubuntu 20.04 LTS x64 上安装了干净的 Discourse - 没有其他东西
我收到了同样的 5 GB 警报 - 真的吗?
system
(system)
关闭
10
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.