При сборке через Jenkins было отказано в разрешении при попытке подключения к сокету демона Docker.

Привет ... Я выполняю свою работу Дженкинса на ОС Windows. Я создаю военный файл на подчиненном узле, который находится на сервере AWS-ubuntu 18.07. Мой Docker установлен на моем подчиненном узле. Мой файл Docker находится в рабочей области. Но при создании изображения я сталкиваюсь с ошибкой:

Я уже добавил пользователя подчиненного узла в группу Docker и внутри рабочего пространства подчиненного узла (сервер Ubuntu), я могу создать тот же образ без использования sudo.

docker build -t swagats/helloimage .

Но все же я сталкиваюсь с ошибкой в ​​​​Jenkins. Помогите пожалуйста мне.

[slaveAnsibleDocker] $ docker build -t swagats/helloimage --pull=true /home/ubuntu/workspace/slaveAnsibleDocker 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.39/build?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=%7B%7D&memory=0&memswap=0&networkmode=default&pull=1&rm=1&session=utpwhi2ue7xox69p9mibabkb7&shmsize=0&t=swagats%2Fhelloimage&target=&ulimits=null&version=1: dial unix /var/run/docker.sock: connect: permission denied Build step ‘Docker Build and Publish’ marked build as failure

Finished: FAILURE

person swagat subhadarshan    schedule 21.05.2019    source источник


Ответы (1)


вы должны предоставить учетные данные root самому jenkis. jenkins - это отдельный пользователь, потому что это право веб-сервера, и любые команды, которые вы выполняете через jenkins, будут выполняться как пользователь jenkins, поэтому вам нужно создать новую группу докеров и добавить своего пользователя; Пользователь, от которого вы выполняете
Аналогично этому, вы должны добавить своего пользователя jenkins в группу докеров, и вы должны предоставить группе докеров root-доступ
Таким образом, группа докеров будет в основном на одном уровне с root с точки зрения доступа, который он имеет в системе, так что это важный шаг, который вам нужно сделать, потому что в противном случае, если вы не включите этот доступ, ваша команда будет выполнена, и она скажет, что разрешение на отказ отклонено

person omarfourati    schedule 21.05.2019
comment
Спасибо за ваш быстрый ответ. Я использую плагин сборки и публикации Docker в jenkins (ОС Windows) для создания образа на моем сервере Ubuntu. Извините, если задам какой-нибудь глупый вопрос. Но не могли бы вы рассказать мне, как найти данные пользователя jenkins. А также не могли бы вы сказать мне команду для создания группы докеров и предоставления root-доступа. Просто чтобы сообщить вам, что на моем сервере Ubuntu я добавил пользователя Ubuntu в группу докеров. Поэтому я подумал, что когда я создаю его с помощью сборки и публикации плагина, команда jenkins выполняется через пользователя Ubuntu. - person swagat subhadarshan; 21.05.2019
comment
Просто добавлю, что на моем сервере Ubuntu есть только один пользователь. - person swagat subhadarshan; 21.05.2019
comment
sudo usermod -aG docker jenkins usermod: пользователь jenkins не существует. Не могли бы вы помочь мне решить это - person swagat subhadarshan; 21.05.2019
comment
Попробовал еще раз, и я могу сделать это успешно. Мой пользователь ubuntu не был правильно добавлен в группу докеров. Большое спасибо за вашу помощь. - person swagat subhadarshan; 21.05.2019