要解决这个问题,我阅读了如何在MacOS下设置Jenkins,并使用Docker守护程序访问--group-add docker
可能会有所帮助。
因此,在使用--group-add docker
运行docker run
时,我将看到以下错误。
注意:如果没有--group-add docker
,它可以正常工作,但是在Jenkins管道中可以看到其他权限错误。
$ docker run -p 8080:8080 -p 50000:50000 -v /var/run/docker.sock:/var/run/docker.sock --name myjenkins2 jenkins/jenkins:2.89.4 --group-add docker
Running from: /usr/share/jenkins/jenkins.war
webroot: EnvVars.masterEnvVars.get("JENKINS_HOME")
Mar 11, 2019 9:37:35 PM Main deleteWinstoneTempContents
WARNING: Failed to delete the temporary Winstone file /tmp/winstone/jenkins.war
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at Main._main(Main.java:294)
at Main.main(Main.java:132)
Caused by: java.lang.IllegalArgumentException: Unrecognized option: --group-add
at winstone.cmdline.CmdLineParser.parse(CmdLineParser.java:53)
at winstone.Launcher.getArgsFromCommandLine(Launcher.java:363)
at winstone.Launcher.main(Launcher.java:334)
... 6 more
背景:
我试图解决詹金斯管道内运行docker命令时看到的以下错误
+ whoami
jenkins
[Pipeline] sh
+ docker ps
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: dial unix /var/run/docker.sock: connect: permission denied
尝试:
docker run -p 8080:8080 -p 50000:50000 -v /var/run/docker.sock:/var/run/docker.sock --group-add docker --name myjenkins2 jenkins/jenkins:2.89.4