Я пытаюсь запустить капсулу Дженкинса в кластере Кубернетес на голом металле.
Я пытался реализовать docker в docker, так как мне нужно построить образ Docker в конвейере, чтобы я монтировал /var/run/docker.sock как том в контейнер , Проблема, с которой я столкнулся, заключалась в том, что я получал сообщение об отказе в разрешении каждый раз, когда в конвейере Jenkins запускалась команда docker.
Я проверил владение /var/run/docker.sock
на узле
srw-rw---- 1 root docker 0 Apr 10 19:47 /var/run/docker.sock
Затем я проверил его внутри работающего контейнера:
srw-rw---- 1 root 116 0 Apr 10 21:33 /var/run/docker.sock
Теперь я немного запутался. Почему я вижу удостоверение личности? Я проверил groupID группы docker
на хосте. Это ровно 116. Я думаю, логичным предположением будет то, что владение внутри контейнера точно такое же, как и на хосте. Хотя группа docker на хосте не выглядит как группа docker внутри контейнера. Это правильное предположение? Тогда возникает вопрос: что я сделал не так?
Мой док-файл Jenkins выглядит следующим образом
FROM jenkins/jenkins:2.230-jdk11
....
UN apt-get update -qq && apt-get install -y docker-ce docker-ce-cli containerd.io
#The following 3 commands I tried to fix the issue, but it did not help
RUN touch /var/run/docker.sock
RUN chown jenkins:docker /var/run/docker.sock
RUN usermod -aG docker jenkins
USER jenkins
Я предполагаю, что группы могут быть как-то - каким-то образом сопоставлены между хост-и гостевой ОС (не уверен, что это работает так (да?)) или - пользователя jenkins следует добавить в группу docker на операционной системе хоста, но я не смог найти, как это сделать. Вероятно, это можно сделать, как предложено здесь , с помощью команды при запуске модуля, но тогда мне придется запускать модуль как пользователь, у которого есть на это права, что может быть не самой лучшей идеей. или - что-то еще
Пожалуйста, посоветуйте, каков рекомендуемый способ заставить это работать.
Спасибо
PS Эту проблему можно четко устранить, указав
securityContext:
..
runAsGroup: 116
..
в определении развертывания, но это недопустимое решение.