При сборке через Jenkins получено отказано в разрешении при попытке подключиться к сокету демона Docker - PullRequest
0 голосов
/ 21 мая 2019

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

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

docker build -t swagats/helloimage .

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

[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

1 Ответ

0 голосов
/ 21 мая 2019

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

...