
我在尝试执行操作时遇到了上述错误。我不知道为什么会发生这种情况。
你试过直接运行
./docker rebuild app
看看会发生什么吗?我认为现在不再需要先执行 git pull 了。
否则,看起来你可能需要检查一下 app.conf 文件。你最近有编辑过它吗?
![]()
不,我最近没有编辑过它。网站昨天崩溃了,我运行了清理操作,然后执行了:
rm /var/discourse/shared/standalone/backups/default/*
接着使用 ./launcher rebuild app 重新构建了系统。
网站在那之后恢复了运行,但现在又无法访问了。
抱歉,我的意思是
./launcher rebuild app
所以您做得对。
您是否查看了 Discourse Doctor?
服务器上还有其他内容吗?如果没有,那很可能是可以删除的 Discourse 备份文件。
你能详细说明一下删除备份的流程吗?因为我一直没太搞懂这个操作。我想彻底弄清楚,毕竟我的存储空间问题已经困扰很久了。
不,服务器上没有任何其他内容。
一个好的起点是运行
./launcher cleanup
如果不起作用,请尝试
./discourse-doctor
如果您仍然遇到问题,可以查看删除旧备份:
/var/discourse/shared/standalone/backups/default
请告诉我们这些操作的效果如何!
通常,在重新构建容器时,该过程会留下悬空镜像。如果您频繁重新构建容器,这些镜像可能会占用大量空间。
事实上,这些悬空镜像最近在服务器上占用了近 100 GB 的空间,直到我将其删除。您可以轻松检查。
请贴出以下命令的输出:
docker images
请以文本形式(复制并粘贴)使用围栏式 Markdown 贴出输出结果。终端截图在移动设备上难以阅读。
谢谢。
注意:
请注意,launcher cleanup 也会清理这些悬空镜像(基于过去 24 小时,我认为):
if tty > /dev/null; then
read -p "您是否希望通过清理系统中的 Docker 镜像和容器来尝试回收空间?(y/N)" -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]
then
$docker_path container prune --force --filter until=1h > /dev/null
$docker_path image prune --all --force --filter until=1h > /dev/null
echo "如果清理成功,您现在可以重试"
fi
fi
local_discourse/app latest 674fd54f165f 4 分钟前 2.5GB
<none> <none> f3a4104c3f75 22 小时前 2.5GB
discourse/base 2.0.20201221-2020 c0704d4ce2b4 11 天前 2.11GB
这个方法奏效了。我的网站现在已经上线了。非常感谢。特别感谢您抽出时间!这帮了大忙。
供你参考:你可以删除这个孤立镜像,从而释放更多磁盘空间:
f3a4104c3f75
docker image rm f3a4104c3f75
据我所知,启动器的清理进程不会删除 24 小时以内的镜像。
或者,你也可以在几小时后再次运行清理,随你方便。
我注意到最近的 Discourse 命令行更新占用了相当多的磁盘空间。
root@endoffice-b:/var/discourse# ./launcher cleanup
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] Y
Total reclaimed space: 0B
WARNING! This will remove all images without at least one container associated to them.
Are you sure you want to continue? [y/N] Y
Deleted Images:
deleted: sha256:284403a252ba061b3ab97f4bfe293ac5e8f05f39ada429d718f58e56191251c2
deleted: sha256:6b6899d54d4dd1f21568956b652975f7c0b9e439978b8cc53036efc46baaf971
untagged: discourse/base:2.0.20211118-0105
untagged: discourse/base@sha256:74b41fffd4f05433eb7c9b72954b1f5f8b15cd0e802bb724c96b7d699c3f6fa1
deleted: sha256:b6cc7cf8974a6ef7bb64c36f4592af261cda0d5565bd91da603568ce26968048
deleted: sha256:c1455b2fdbca024c36c4e75746051b77c3637020cfa1e36a41440292a8c39424
deleted: sha256:77b323d4ec74aad770337f99a60e862a64ccc53f4775b5f4945df0e606f78b90
untagged: discourse/base:2.0.20220128-1817
untagged: discourse/base@sha256:dcb4eb8e41a2e84f776f80587f308d167a54ad7ff4ba616199891828bbd4ddae
Total reclaimed space: 3.54GB
这在两个实例上都发生了,另一个是 3.538GB ![]()
我通常会非常规律地在每次 Discourse 更新后运行 ./launcher cleanup,我大约每个月更新一次,所以这告诉我上次更新 本身 就占用了近 4GB 的磁盘空间。cc @falco @sam 这是我们应该担心的吗?![]()
我认为在过去几个月里,我们已经不可避免地两次更新了基础镜像。我们对此无能为力。看起来您服务器上的清理工作减少了 2 个基础镜像。
@anon43908006,有一个指南:
它涵盖了更改域名的许多注意事项,请查看。![]()
澄清一下,是关于升级总体规模的增加没什么可做的,还是关于最近基础镜像活动激增(未来影响不大)没什么可做的?
我很惊讶,我有很多用户很少的微型 Discourse,最近一直遇到这个问题。没有上传或其他东西。我想知道我们是否即将达到云安装会推荐下一个尺寸的磁盘空间(即 2GB RAM/1vCPU/50GB SSD)的时候? ![]()
我问了 @falco 关于这个问题,他说最近由于依赖项的更新,我们对基础镜像进行了很多更改,因此在过去约 6 个月的时间里,升级占用的磁盘空间比平时要多。
很抱歉听到您在更改域名时遇到了麻烦,@anon43908006。
因为这是#support,我鼓励您创建一个新的主题来解释您的具体情况:您的情况可能需要比这个主题更多的讨论,这个主题更多的是我们注意到的一种普遍模式。
如果您愿意,可以提及我(@maiki),我很乐意与您讨论您的网站情况。![]()
当我尝试备份 Discourse 时,我遇到了相同的 No space left on device 错误:
[2022-11-15 08:23:38] EXCEPTION: /var/www/discourse/lib/discourse.rb:131:in `exec': Failed to gzip archive.
gzip: /var/www/discourse/public/backups/default/forum-leasehackr-2022-11-15-080439-v20221110175456.tar.gz: No space left on device
我的备份和图片上传都设置在 DigitalOcean 的 Spaces 上,并且在过去几年里一直运行良好,直到最近几个月。以下是我到目前为止尝试过的方法:
cd /var/discourse
apt-get update
apt-get upgrade
apt-get autoclean
apt-get autoremove
./launcher rebuild app
./launcher cleanup
有人知道为什么我的备份仍然失败吗?谢谢!