Не удалось пересобрать Discourse: на устройстве недостаточно места

image

При попытке выполнить операцию возникает вышеупомянутая ошибка. Я не понимаю, почему это происходит.

Вы пробовали просто выполнить

./docker rebuild app

и посмотреть, что произойдет? Мне кажется, что сначала больше не требуется делать git pull.

В противном случае, похоже, вам нужно проверить файл app.conf. Вы недавно его редактировали?

image

Нет, я не редактировал его недавно. Сайт упал вчера, я запустил очистку, а затем выполнил:
rm /var/discourse/shared/standalone/backups/default/*
Затем я выполнил пересборку с помощью ./launcher rebuild app.

После этого сайт снова начал работать, но теперь он снова не работает.

Извините, я имел в виду

./launcher rebuild app

Так что вы всё делаете правильно.

Вы уже посмотрели Discourse Doctor?

Хорошо, значит, проблема в хранилище. Как мне сейчас освободить место? Извините, но я новичок.

Я только что запустил discourse-doctor, и мне вывели несколько строк с сообщением о том, что хранилище заполнено.

Есть ли у вас что-то ещё на сервере? Если нет, то, вероятно, это резервные копии Discourse, которые можно удалить.

Можешь объяснить процесс удаления резервных копий, так как я никогда толком не понимал, как это делается. Хочу наконец-то разобраться, потому что у меня уже очень давно проблемы с местом на диске.

Нет, на сервере у меня ничего другого нет.

Хороший первый шаг — запустить

./launcher cleanup 

Если это не поможет, попробуйте

./discourse-doctor

Если у вас всё ещё возникнут трудности, вы можете удалить старые резервные копии из

/var/discourse/shared/standalone/backups/default

Сообщите нам, как всё прошло!

Привет, @seshu_ram

Часто при пересборке контейнеров в системе остаются «осиротевшие» образы. Если вы часто пересобирали свой контейнер, эти образы могут занимать значительное место.

На самом деле, такие осиротевшие образы недавно занимали почти 100 ГБ и более на нашем сервере, пока я их не удалил. Вы можете легко это проверить.

Пожалуйста, опубликуйте вывод команды:

docker images

Пожалуйста, предоставьте вывод в виде текста (копирование и вставка) с использованием fenced 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

@neounix

REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
local_discourse/app   latest              674fd54f165f        4 minutes ago       2.5GB
<none>                <none>              f3a4104c3f75        22 hours ago        2.5GB
discourse/base        2.0.20201221-2020   c0704d4ce2b4        11 days ago         2.11GB

У меня получилось. Мой сайт уже работает. Большое спасибо. Огромное спасибо за ваше время! Это очень помогло.

@tobiaseigen

Привет, @seshu_ram

К сведению и на всякий случай: вы можете удалить этот лишний образ и освободить немного места на диске:

 f3a4104c3f75   
docker image rm  f3a4104c3f75  

Процесс очистки лаунчера (насколько я помню) не удаляет образы младше 24 часов.

Или вы можете запустить очистку снова через несколько часов, как вам удобно.

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

root@endoffice-b:/var/discourse# ./launcher cleanup
ВНИМАНИЕ! Это удалит все остановленные контейнеры.
Вы уверены, что хотите продолжить? [y/N] Y
Восстановлено места: 0 Б
ВНИМАНИЕ! Это удалит все образы, у которых нет хотя бы одного связанного с ними контейнера.
Вы уверены, что хотите продолжить? [y/N] Y
Удалённые образы:
удалено: sha256:284403a252ba061b3ab97f4bfe293ac5e8f05f39ada429d718f58e56191251c2
удалено: sha256:6b6899d54d4dd1f21568956b652975f7c0b9e439978b8cc53036efc46baaf971
разметка снята: discourse/base:2.0.20211118-0105
разметка снята: discourse/base@sha256:74b41fffd4f05433eb7c9b72954b1f5f8b15cd0e802bb724c96b7d699c3f6fa1
удалено: sha256:b6cc7cf8974a6ef7bb64c36f4592af261cda0d5565bd91da603568ce26968048
удалено: sha256:c1455b2fdbca024c36c4e75746051b77c3637020cfa1e36a41440292a8c39424
удалено: sha256:77b323d4ec74aad770337f99a60e862a64ccc53f4775b5f4945df0e606f78b90
разметка снята: discourse/base:2.0.20220128-1817
разметка снята: discourse/base@sha256:dcb4eb8e41a2e84f776f80587f308d167a54ad7ff4ba616199891828bbd4ddae

Восстановлено места: 3.54 ГБ

Это произошло на обоих экземплярах, на другом было 3.538 ГБ :wink:

Я обычно очень ответственно выполняю ./launcher cleanup после каждого обновления Discourse и обновляюсь примерно раз в месяц, так что это говорит мне о том, что последнее обновление само по себе заняло почти 4 ГБ места.. cc @falco @sam, стоит ли нам беспокоиться об этом? :thinking:

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

@anon43908006, есть руководство по адресу:

В нём подробно рассматриваются многие аспекты смены домена, обязательно ознакомьтесь. :slight_smile:

Уточню: речь о том, что почти ничего нельзя сделать с общим ростом размера обновлений, или о том, что почти ничего нельзя сделать с недавним всплеском активности обновления базовых образов (что в будущем не будет так сильно влиять)?

Я удивлён: у меня много маленьких установок Discourse с очень небольшим количеством пользователей, и в последнее время я постоянно сталкиваюсь с этой проблемой. Никаких загрузок или чего-то подобного. Я задумался, не приближаемся ли мы к моменту, когда облачная установка будет рекомендовать следующий шаг по объёму дискового пространства (а это 2 ГБ ОЗУ / 1 виртуальное ядро CPU / 50 ГБ SSD). :thinking:

Я спрашивал об этом у @falco в чате, и он сказал, что в последнее время у нас было много изменений базовых образов из-за обновления зависимостей, поэтому за последние ~6 месяцев при обновлениях требовалось больше дискового пространства, чем обычно.

Извините, что у вас возникли проблемы с изменением имени домена, @anon43908006.

Поскольку это раздел Support, я рекомендую создать новую тему, где вы подробно опишете свой случай: возможно, ваша ситуация требует более детального обсуждения, чем то, что происходит в этой теме, которая в целом отражает общую тенденцию, которую мы наблюдаем.

Если хотите, вы можете упомянуть меня (@maiki), и я с радостью обсудю, что происходит с вашим сайтом. :slight_smile:

Я получаю ту же ошибку No space left on device при попытке создать резервную копию своего Discourse:

[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

Мои резервные копии и загрузка изображений настроены на Spaces от DigitalOcean и работали без проблем в течение нескольких лет до недавнего времени. Вот что я уже пробовал:

  1. Я очистил все скрытые multipart-загрузки в своём DO Space. На моём DO Space должно быть доступно более 100 ГиБ свободного места.
  2. Я попробовал пересобрать систему и очистить её с помощью следующих команд:
cd /var/discourse
apt-get update
apt-get upgrade
apt-get autoclean
apt-get autoremove
./launcher rebuild app
./launcher cleanup

Кто-нибудь знает, почему мои резервные копии продолжают завершаться неудачей? Спасибо!