当使用管道语法和Docker代理从Jenkinsfile运行作业时,管道会失败,出现"Docker:命令未找到“。我理解这意味着:(1)没有安装Docker;或者(2) Jenkins没有指向正确的Docker安装路径。我的情况非常类似于这个问题:Docker command not found in local Jenkins multi branch pipeline。Jenkins安装在MacOS上,运行localhost:8080
。还安装了Docker (v18.06.0-ce-mac70)。
该用户的解决方案包括从pipeline
声明语法切换到node
脚本语法。但是,我想在保留声明语法的同时解决这个问题。
Jenkinsfile
#!groovy
pipeline {
agent {
docker {
image 'node:7-alpine'
}
}
stages {
stage('Unit') {
steps {
sh 'node -v'
sh 'npm -v'
}
}
}
}
错误消息
docker inspect -f . node:7-alpine
docker: command not found
docker pull node:7-alpine
docker: command not found
在Jenkins配置中,对于Docker安装,我尝试了(1)自动安装(从docker.com);(2)使用安装根/usr/local/
进行本地安装。
所有的相关插件似乎也安装了。
发布于 2019-11-04 07:01:44
我在这里解决了这个问题:https://stackoverflow.com/a/58688536/8160903
(将Docker的路径添加到plist /usr/local/Cellar/jenkins-lts/2.176.3/homebrew.mxcl.jenkins-lts.plist)
发布于 2018-07-31 05:19:48
我将检查运行jenkins进程的用户,并确保他们是docker组的一部分。
发布于 2018-08-02 11:27:08
您可以尝试将计算机上的docker
可执行文件的完整路径添加到Manage Jenkins > Global Tool Configuration
的Jenkins中。
有时,我看到启动Jenkins的用户在$PATH
上没有可执行文件的位置。
https://stackoverflow.com/questions/51605685
复制相似问题