我正面临这个奇怪的问题,几乎几天都在努力解决。
工作: 在mac mini命令提示符下,我切换到jenkins用户,可以毫无问题地运行docker命令。
不工作 但是当我运行jenkins作业时,内部命令步骤docker无法识别。
我收到错误
docker: command not found
docker --version
但是提到docker的显式路径,确实可行
/Users/buildserver/Library/Group\ Containers/group.com.docker/bin/docker --version
问题:为什么docker命令无法查看正确的路径?
权限
lrwxr-xr-x 1 buildserver staff 71 Oct 14 10:44 docker - > / Users / buildserver / Library / Group Containers / group.com.docker / bin / docker
jenkins使用是员工组的一部分。
提前致谢。
此致 维克拉姆
答案 0 :(得分:2)
Jenkins工作开始的PATH
与Jenkins用户在bash中看到的路径不同。在Jenkins UI中,您可以编辑环境变量(来自Manage Jenkins / Configure System),并将Docker文件夹添加到PATH
:
PATH -> $PATH:/Users/buildserver/Library/Group\ Containers/group.com.docker/bin/
this question答案中的更多细节。
答案 1 :(得分:0)
对于其他人(后来但值得),我通过Brew安装了Jenkins,因此我将 Docker的路径添加到以下文件中: / usr / local / Cellar / jenkins-lts /2.176.3/homebrew.mxcl.jenkins-lts.plist (整个文件如下所示)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>homebrew.mxcl.jenkins-lts</string>
<key>ProgramArguments</key>
<array>
<string>/usr/libexec/java_home</string>
<string>-v</string>
<string>1.8</string>
<string>--exec</string>
<string>java</string>
<string>-Dmail.smtp.starttls.enable=true</string>
<string>-jar</string>
<string>/usr/local/opt/jenkins-lts/libexec/jenkins.war</string>
<string>--httpListenAddress=127.0.0.1</string>
<string>--httpPort=8080</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/Docker.app/Contents/Resources/bin/:/Users/Kh0a/Library/Group\ Containers/group.com.docker/Applications/Docker.app/Contents/Resources/bin</string>
</dict>
</dict>
</plist>
然后重新启动Jenkins的服务:
brew services restart jenkins-lts