Ошибка сборки на 2 ГБ ОЗУ без файла подкачки

Я сталкиваюсь с точно такой же проблемой, как и в теме выше, на экземпляре с 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 несколько лет назад для установки этого экземпляра. Я не уверен, почему своп был остановлен. Я когда-то установил на сервер что-то ещё, что теперь удалено, и это могло повлиять на что-то, о чём я не знаю. Возможно, это приложение взаимодействовало со свопом — это не моя сфера компетенции, но экземпляр снова работает.