Я сталкиваюсь с точно такой же проблемой, как и в теме выше, на экземпляре с 2 ГБ оперативной памяти.
Непосредственно перед ошибкой я сделал снимок htop — обратите внимание, что swap не используется.
Вам нужен своп-файл размером 2 ГБ. Если вы запускали discourse-setup, он был бы создан автоматически.
Следовало указать, что это работает уже более 4 лет, я пересобираю его каждые 2–3 месяца.
Да, своп критически важен.
Без него всё сломается.
То есть по сути нужно снова запустить discourse-setup вместо обычного rebuild?
Если вы запускали discourse-setup для начала работы, возможно, в вашей системе есть что-то, что помешало созданию раздела подкачки. Возможно, вам придется создать его самостоятельно. Найдите в Google что-то вроде «создать раздел подкачки ВАШ-ДИСТРИБУТИВ-LINUX».
Спасибо, Джей и Роберт. Действительно, раздел подкачки отсутствовал.
Решение:
cd /var/discourse
chmod 700 containers # возможно, это излишне, но вреда не будет
./discourse-setup
Скрипт настройки воссоздаст раздел подкачки и завершит работу.
ПРЕДУПРЕЖДЕНИЕ: Для работы Discourse требуется как минимум 2 ГБ раздела подкачки, если доступно 2 ГБ оперативной памяти или меньше. В этой системе, по-видимому, недостаточно места для подкачки.
При недостаточном объёме раздела подкачки ваш сайт может работать некорректно, а будущие обновления Discourse могут завершиться неудачей.
Нажмите Ctrl+C для выхода или подождите 5 секунд, чтобы создать файл подкачки размером 2 ГБ.
Настройка раздела подкачки версии 1, размер = 2 ГиБ (2147479552 байт)
метка отсутствует, UUID=e0321b22-.....
/swapfile swap swap auto 0 0
vm.swappiness = 10
Файл конфигурации containers/app.yml уже существует!
. . . повторная настройка . . .
Сохранение старого файла как app.yml.2023-10-03-153852.bak
Остановка существующего контейнера через 5 секунд или нажмите Ctrl+C для отмены.
Затем выполните обычную пересборку.
Значит, вы изначально установили, не запустив discouse-setup?
Нет, я использовал discourse-setup несколько лет назад для установки этого экземпляра. Я не уверен, почему своп был остановлен. Я когда-то установил на сервер что-то ещё, что теперь удалено, и это могло повлиять на что-то, о чём я не знаю. Возможно, это приложение взаимодействовало со свопом — это не моя сфера компетенции, но экземпляр снова работает.