Aravinth Rajan
Aravinth Rajan

Reputation: 113

unable to invoke DOCKER using JENKINS user

I am trying to run a docker command as part of a jenkins job using shell. I get a standard error stating "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/images/json: dial unix /var/run/docker.sock: connect: permission denied"

I will require some help on 1. how to find the path where docker is installed which can be added to JENKINS global configuration 2. workaround to fix this permission issue(running as a sudo user/any other specific user)

I have already experimented by adding the JENKINS users to admin group, staff group, made administrator. But, nothing has actually helped. I still get the standard error

Tried the below code on terminal too sudo -u jenkins docker images

OUTPUT: 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/images/json: dial unix /var/run/docker.sock: connect: permission denied

I am expecting to run this code without the error. Only then my jenkins pipeline will be complete.

Upvotes: 0

Views: 304

Answers (1)

fjc
fjc

Reputation: 5805

  1. To find the path where docker is installed, simply run a which docker. Usually, it'll be installed somewhere in the standard PATH already, so probably Jenkins will already have access. As you get the permission denied error message, it looks like Jenkins is already using the correct docker executable.

  2. Depending on the distribution or operating system you are using, you will most likely need to add the jenkins user to a docker group, e.g. sudo usermod -aG docker jenkins. To find out which group you need, run:

    $ ls -l /var/run/docker.sock
    srw-rw---- 1 root docker 0 Apr 30 16:20 /var/run/docker.sock
    

    In the second line, you see the group that docker.sock is owned by. Add the jenkins user to that group.

Upvotes: 1

Related Questions