Это ответ, предоставленный 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 создаст контейнер с вашими ограничениями.
Источник и дополнительная информация:
- Ограничение использования памяти Discourse на выделенном сервере
- Параметры для VPS с ограниченными ресурсами?
b) Прямое редактирование команды Docker
Хотя технически возможно запустить Docker с пользовательскими ограничениями, скопировав вашу обновлённую команду docker run, это не является постоянным решением и не рекомендуется.
На данный момент нет официального постоянного «встроенного» способа передачи аргументов Docker --memory или --cpus для стандартных инструментов развёртывания Discourse, кроме изменения скрипта запуска.
2. Имя контейнера
По умолчанию скрипт запуска Discourse называет контейнер app. Вы можете убедиться в этом с помощью команды docker ps. Изменение имени контейнера также потребует прямого изменения скрипта запуска или шаблонов.
Подробнее: Discourse в контейнере Docker
Полезные ссылки
- Ограничение использования памяти Discourse на выделенном сервере
- Настройка Docker Discourse на серверах с большим объёмом RAM и CPU
Если вы ищете более элегантный и постоянный способ (например, через шаблон или поддерживаемую функцию запуска), ознакомьтесь с этой темой:
Параметры для VPS с ограниченными ресурсами?