У меня есть Jenkins на Docker, и главный, и подчиненный Jenkins являются контейнерами Docker с смонтированным var / run / docker.sock.Между ними есть правильная связь, но когда я пытаюсь запустить простой докер "hello-world" в качестве теста (используя скрипт Pipeline), я получаю известность:
Получено разрешение при попытке подключенияк сокету демона Docker в unix: ///var/run/docker.sock: получить http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/json?all=1: набрать unix /var/run/docker.sock: подключиться: разрешение запрещено
Я много раз читал, что мой пользователь Jenkins должен принадлежать к группе Docker, тогда все должно работать просто отлично.Но, видимо, это происходит:
jenkins@7401675c7c9e:~$ groups
jenkins docker
jenkins@7401675c7c9e:~$ docker ps -a
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/json?all=1: dial unix /var/run/docker.sock: connect: permission denied
Теперь я совершенно не знаю, что я делаю не так, я перепробовал все:
- , добавив
RUN usermod -a -G docker jenkins
к обоим Dockerfiles(для основных и ведомых образов) - добавление
DOCKER_OPTS=' -G jenkins'
в / etc / default / docker - добавление
privileged: true
в docker-compose - , ввод вручную в контейнеры и использование
usermod -aG docker jenkins
, а затем позже.
Независимо от того, что я делаю, конвейер не может просто получить доступ к док-сокету.Я пользователь jenkins, я в группе Docker и до сих пор ничего не могу сделать с демоном Docker.Jenkinsfile действительно прост:
pipeline{
agent{
node{
label 'swarm'
}
}
stages {
stage("Just checking"){
steps{
sh 'whoami'
sh 'groups jenkins'
}
}
stage("Hello world!"){
steps{
sh 'docker run hello-world'
}
} ...
И результаты:
+ whoami
jenkins
+ groups jenkins
jenkins : jenkins docker
+ docker run hello-world
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.35/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.
script returned exit code 126
Я только начинаю использовать докер и Дженкинс, и я понятия не имею, что я делаю неправильно, кто-нибудь делает?видите какую-либо очевидную ошибку?