Мне нужно настроить контейнер SonarQube на моем экземпляре Portainer. SonarQube использует Elasticsearch, которому требуется передача настроек ядра от хоста. Эта проблема хорошо задокументированный, как упоминалось в этот вопрос, но, к сожалению, на плакате не было подробно описано их решение.
По-видимому, эту проблему можно решить, запустив это на своем хосте (?)
sysctl -w vm.max_map_count=262144
Однако мне бы хотелось, чтобы это можно было указать только для этого контейнера. Возможно ли такое и как это делается в Portainer? Я попробовал переменную окружения, но это не помогло.
Контейнеры совместно используют системное ядро ОС машины, поэтому изменить параметры ядра, такие как vm.max_map_count
в самой таре.
В выпуск связанная вами команда содержит образец команды
docker run -it --rm --privileged --net=host --pid=host -v /:/host debian:sid chroot /host sysctl -w vm.max_map_count=262145
как это сделать при запуске контейнера. Однако я бы не рекомендовал делать это, поскольку privileged
режим небезопасен.
Я бы рекомендовал установить vm.max_map_count
на хосте и закрепите контейнер на этом хосте Docker с помощью диспетчера кластеров. ИМХО, также имеет смысл запускать elasticsearch и sonarqube в выделенных контейнерах.