"Менее 5 ГБ свободного места" — неправда! 👀

Я использую Discourse уже много лет, и мой опыт был неизменно отличным, за исключением одной повторяющейся проблемы:

Всякий раз, когда я вижу на экране обновления сообщение «Вы используете старую версию образа Discourse», меня охватывает бледность и чувство ужаса.

Почему?

Потому что я знаю: мне предстоит несколько часов бороться со своим Droplet от DigitalOcean через командную строку — тем, что я в целом ненавижу, — прежде чем обновление удастся выполнить корректно.

А в этот раз мне вообще не удаётся заставить это работать :pensive_face:

Насколько я могу судить, свободное место заполняется директорией /dev/vda1. Но при исследовании этой директории я получаю разную информацию в зависимости от метода!

На изображении ниже показана эта странность. Обратите внимание, что в верхней части (которая получена командой df -h) папка /dev/vda1 кажется имеющей 7,1 ГБ свободного места.

Но затем обратите внимание, что запускатель сообщает, что в той же папке доступно только 4 ГБ!

У кого-нибудь есть дополнительные сведения по этому поводу?

Конкретно меня интересует совет, почему два разных метода просмотра файла показывают разное количество свободного места.

А затем я бы с радостью узнал, как воспользоваться доступными 7,1 ГБ, чтобы выполнить обновление.

(Для ясности: я не ищу ленивого ответа вроде «Просто обновите свой Droplet от DO» — если бы я хотел удвоить свои годовые расходы на этот форум, я бы уже это сделал.)

Спасибо!

Действительно, это неприятно. Вы можете попробовать

 docker prune

Возможно, существуют ресурсы, которые Docker создал, но забыл о них. Недавно была тема об этом.

Однако наличие свободного места в другом месте, а не там, где его ожидает Docker, не поможет. Возможно, но маловероятно, что лаунчер проверяет не то место.

Для этой конкретной перестройки вам нужно было загрузить новый базовый образ, что видно по строкам от WARNING до Status на вашем скриншоте. Он большой — 2,81 ГБ, согласно моей системе, поэтому то, что вы видите, — это место, потерянное из-за этой новой версии базового образа.

# docker images -a
REPOSITORY                 TAG       IMAGE ID       CREATED        SIZE
discourse/base             latest    ab71a5d97460   4 days ago     2.81GB

Использование команды ./launcher cleanup очистит неиспользуемые контейнеры и образы, что может освободить достаточно места. Как отметил @pfaffman, прямая очистка (pruning) с помощью Docker также может удалить дополнительные неиспользуемые объекты, хотя лично я не заметил значительной пользы от этого помимо очистки контейнеров и образов.

Ещё один способ, который может помочь, — очистка кэша apt, который может стать довольно большим.

apt-get clean

Именно об этом я и думаю — для этого конкретного обновления, похоже, требуется 5 ГБ + 2,811 ГБ для нового образа Docker.

Это правда? Если так, то это затронет очень много людей…

Я перепробовал все доступные команды для обрезки/удаления/очистки/ремонта, но суть в том, что это не сработает, если на машине нет 7,811 ГБ свободного места.

Если это так, то я не понимаю, как 25-гигабайтный Droplet от DigitalOcean всё ещё может рекомендоваться в качестве стартового варианта :woman_shrugging:t5:


Кроме того, вот пример процесса, который привёл меня к такому выводу:

В начале:

6,9 ГБ свободно, 72% занято

После запуска ./launcher rebuild app:

3,7 ГБ свободно, 85% занято

Я не вижу другого выхода из этой ситуации, но надеюсь, что кто-то другой его найдёт!

У вас есть 7,1 ГБ свободного места до загрузки образа контейнера Discourse, но после его загрузки, когда мы проводим проверку, остаётся менее 5 ГБ.

У вас есть два варианта:

  1. Выполните ./launcher rebuild app --skip-prereqs, чтобы обойти проверку дискового пространства.

  2. Увеличьте размер вашего диска.

Если вы выберете вариант 1, вы просто отложите решение проблемы, но в конечном итоге всё равно придётся заняться вопросом использования диска, так как объём данных вашего сообщества и Discourse будет расти со временем.

Очень полезно! Освободилось 6,8 ГБ :+1:

Пробую сейчас, спасибо!

Обновление: Сработало!

У меня 25 ГБ облачного SSD от Vultr

Установлен чистый Discourse на Ubuntu 20.04 LTS x64 — больше ничего

Получил то же предупреждение о 5 ГБ — правда?