Обновление Discourse не удалось из-за нехватки места на диске на Droplet 25G

У меня есть Droplet на 25 ГБ, который, по утверждению Discourse, должен быть достаточным, но я не могу выполнить обновление до последней версии, так как у меня закончилось место на диске. Мой форум очень маленький и имеет очень небольшой трафик.

Я выполнил ./launcher cleanup и даже удалил старые резервные копии, но это не помогло.

Что мне делать?

root@DO-Discourse:/var/discourse# ./launcher rebuild app
x86_64 arch detected.

WARNING: We are about to start downloading the Discourse base image
This process may take anywhere between a few minutes to an hour, depending on your network speed

Please be patient

2.0.20220224-2005: Pulling from discourse/base
5eb5b503b376: Pull complete 
35b2f73fc27b: Pull complete 
44526e3ec669: Pull complete 
Digest: sha256:8a8bb9525882220196c0faa8ce95c62a7fb607fc203d4247b3d5985f3ca9c3d8
Status: Downloaded newer image for discourse/base:2.0.20220224-2005
docker.io/discourse/base:2.0.20220224-2005
You have less than 5GB of free space on the disk where /var/lib/docker is located. You will need more space to continue
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        25G   22G  3.0G  88% /

Would you like to attempt to recover space by cleaning docker images and containers in the system? (y/N)y
If the cleanup was successful, you may try again now
root@DO-Discourse:/var/discourse# 
root@DO-Discourse:/var/discourse# df -h
Файловая система   Размер  Использовано  Свободно  Использовано%  Монтировано на
udev                448M           0        448M             0%  /dev
tmpfs                99M         1.1M         98M             2%  /run
/dev/vda1            25G           18G        6.2G            75%  /
tmpfs               491M           0        491M             0%  /dev/shm
tmpfs                 5.0M         0          5.0M             0%  /run/lock
tmpfs               491M           0        491M             0%  /sys/fs/cgroup
/dev/vda15          105M         9.2M         96M             9%  /boot/efi
overlay              25G           18G        6.2G            75%  /var/lib/docker/overlay2/d319d95263d87c2a75a4bc9a9f03a25ea7f6eb1f7bac687e7ae7d45522939dc0/merged
/dev/loop10          56M           56M          0           100%  /snap/core18/2284
/dev/loop7           44M           44M          0           100%  /snap/snapd/14978
/dev/loop5           62M           62M          0           100%  /snap/core20/1361
/dev/loop2           68M           68M          0           100%  /snap/lxd/22526
/dev/loop1           62M           62M          0           100%  /snap/core20/1376
/dev/loop3           44M           44M          0           100%  /snap/snapd/15177
/dev/loop4           56M           56M          0           100%  /snap/core18/2344
/dev/loop6           68M           68M          0           100%  /snap/lxd/22753
tmpfs                99M           0          99M             0%  /run/user/0
root@DO-Discourse:/var/discourse# 

Попробуйте выполнить команду ./launcher cleanup, но если это не поможет, вам придется добавить больше места на диске вашего сервера.

Вы могли бы (но не стоит)
./launcher rebuild app --skip-prereqs

Как я уже говорил ранее, я уже делал это, причем несколько раз.
Я читал, что для Discourse в идеале нужно 20–30 ГБ. У меня есть 25 ГБ, поэтому странно, что требуется больше. Изменились ли требования?

Не совсем понятно, что вы имеете в виду.

Я имею в виду краткосрочно на тестовом инстансе — я пробовал (кажется, всё прошло нормально с 4,6 ГБ свободного места), но на продакшн-инстансе я бы этого не делал.

sudo apt autoremove --purge может быть?

Также проверьте, есть ли у вас много резервных копий.

Требования к хранилищу зависят от объема медиафайлов, загружаемых в ваш экземпляр Discourse.

Удивительно, как быстро растёт мой тестовый сайт на DO, пока я экспериментирую.
Если у вас сейчас возникли проблемы, вы, возможно, сможете просто удалить достаточно данных, чтобы Discourse обновился, но в следующий раз база данных будет немного больше, и у вас может оказаться больше медиафайлов.
Если у вас действительно много медиафайлов, перенос на хранилище S3 освободит место; если нет, возможно, единственным вариантом станет увеличение размера droplet.

На DO droplet на базе AMD, как утверждается, работает намного лучше… это не мои тесты (я прочитал это в интернете :face_with_raised_eyebrow:) — вот ссылка

Понял. Где отображается использованный объем хранилища?

Понял. Моя база данных занимает 60 МБ, и я удалил все резервные копии.

Как я уже говорил ранее, удалил все резервные копии. (Хотя моя база данных весит всего 60 МБ, так что это не имело особого значения).

root@DO-Discourse:/var/discourse# apt autoremove --purge
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Обновлено 0, установлено 0 новых пакетов, удалено 0 и 94 не обновлено.
root@DO-Discourse:/var/discourse#

Один из способов — очистить кэш apt.

apt clean

Также можно выполнить команду

du -h -s /* | sort -h -r

чтобы узнать, где используется место. Например, если большая часть данных находится в /usr, можно повторить команду с:

du -h -s /usr/* | sort -h -r

и так далее. Надеюсь, это поможет найти большие файлы или папки, которые можно удалить. Однако не удаляйте ничего, пока не будете уверены, что это безопасно.

Для быстрой проверки на вашей панели управления /admin есть раздел «Загрузки»:

Предоставила ли моя предыдущая команда эту информацию?

root@DO-Discourse:/var/discourse# cd ..
root@DO-Discourse:/var# cd ..
root@DO-Discourse:/# du -h --max-depth=1 -x
13G     ./var
301M    ./boot
5.4M    ./etc
116K    ./tmp
4.0K    ./srv
4.0K    ./home
28K     ./snap
4.0K    ./media
3.3G    ./usr
4.0K    ./mnt
901M    ./root
24K     ./opt
16K     ./lost+found
19G     .
root@DO-Discourse:/#