Назад | Перейти на главную страницу

Portainer: передать vm.max_map_count в контейнер Docker SonarQube

Мне нужно настроить контейнер 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 в выделенных контейнерах.