Следовал руководству GitHub для VPS. Помогите применить лимиты RAM/vCPU

Это ответ, предоставленный ask.discourse.org. Пожалуйста, оцените его полезность.


1. Установка постоянных ограничений на CPU и RAM для Docker Discourse

При установке Discourse на VPS через официальное руководство GitHub ограничения ресурсов, такие как --memory и --cpus, по умолчанию не включаются. Хотя вы можете вручную добавить такие флаги в команду запуска Docker, любые изменения, сделанные напрямую через docker stop и новый docker run, будут утеряны после выполнения ./launcher rebuild app. Скрипт запуска всегда воссоздает контейнер.

Рекомендуемые подходы:

a) Изменение скрипта запуска
Чтобы постоянно применять ограничения ресурсов, необходимо изменить скрипт launcher, который Discourse использует для запуска контейнеров Docker. Например, примерно на строке 289 адаптируйте:

$docker_path run $restart_policy "${env[@]}" -h "`hostname`-$config" \
    -m="4g" --cpus="2.0" -e DOCKER_HOST_IP=$docker_ip ...

Это гарантирует, что каждый запуск ./launcher rebuild создаст контейнер с вашими ограничениями.

Источник и дополнительная информация:

b) Прямое редактирование команды Docker
Хотя технически возможно запустить Docker с пользовательскими ограничениями, скопировав вашу обновлённую команду docker run, это не является постоянным решением и не рекомендуется.

На данный момент нет официального постоянного «встроенного» способа передачи аргументов Docker --memory или --cpus для стандартных инструментов развёртывания Discourse, кроме изменения скрипта запуска.


2. Имя контейнера

По умолчанию скрипт запуска Discourse называет контейнер app. Вы можете убедиться в этом с помощью команды docker ps. Изменение имени контейнера также потребует прямого изменения скрипта запуска или шаблонов.
Подробнее: Discourse в контейнере Docker


Полезные ссылки


Если вы ищете более элегантный и постоянный способ (например, через шаблон или поддерживаемую функцию запуска), ознакомьтесь с этой темой:
Параметры для VPS с ограниченными ресурсами?