docker: command not found ( mac mini ) 仅发生在 jenkins shell 步骤中,但在命令提示符下工作
docker: command not found ( mac mini ) only happens in jenkins shell step but work from command prompt
我正面临这个奇怪的问题,近几天来一直在努力解决。
工作:
在 mac 迷你命令提示符下,我切换到 jenkins 用户并且可以 运行 docker 命令没有任何问题。
不工作:
但是当我 运行 一个 jenkins 作业时,在 shell 命令步骤 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 员工 71 10 月 14 10:44 docker -> /Users/buildserver/Library/Group Containers/group.com.docker/bin/docker
jenkins 使用的是 staff 组的一部分。
提前致谢。
此致,
维克拉姆
Jenkins 作业开始的 PATH
与 Jenkins 用户在 bash 中看到的路径不同。在 Jenkins UI 中,您可以编辑环境变量(来自管理 Jenkins/Configure 系统),并将 Docker 文件夹添加到 PATH
:
PATH -> $PATH:/Users/buildserver/Library/Group\ Containers/group.com.docker/bin/
this question 的答案中有更多详细信息。
对于其他人(迟到但值得),我通过 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
More question
我已经通过更新文件解决了上述问题
/usr/local/Cellar/jenkins-lts/2.176.3/homebrew.mxcl.jenkins-lts.plist.
我在上面的文件中添加了docker的路径
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/Docker.app/Contents/Resources/bin/:/Users/admin/Library/Group\ Containers/group.com.docker</string>
</dict>
我正面临这个奇怪的问题,近几天来一直在努力解决。
工作: 在 mac 迷你命令提示符下,我切换到 jenkins 用户并且可以 运行 docker 命令没有任何问题。
不工作: 但是当我 运行 一个 jenkins 作业时,在 shell 命令步骤 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 员工 71 10 月 14 10:44 docker -> /Users/buildserver/Library/Group Containers/group.com.docker/bin/docker
jenkins 使用的是 staff 组的一部分。
提前致谢。
此致, 维克拉姆
Jenkins 作业开始的 PATH
与 Jenkins 用户在 bash 中看到的路径不同。在 Jenkins UI 中,您可以编辑环境变量(来自管理 Jenkins/Configure 系统),并将 Docker 文件夹添加到 PATH
:
PATH -> $PATH:/Users/buildserver/Library/Group\ Containers/group.com.docker/bin/
this question 的答案中有更多详细信息。
对于其他人(迟到但值得),我通过 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
More question
我已经通过更新文件解决了上述问题
/usr/local/Cellar/jenkins-lts/2.176.3/homebrew.mxcl.jenkins-lts.plist.
我在上面的文件中添加了docker的路径
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/Docker.app/Contents/Resources/bin/:/Users/admin/Library/Group\ Containers/group.com.docker</string>
</dict>