docker - 来自 Jenkins 在 MacOS 上的“Docker:找不到命令”
问题描述
当使用管道语法和 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
脚本式语法。但是我想在保留声明性语法的同时解决这个问题。
詹金斯文件
#!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) 使用安装 root 进行本地安装/usr/local/
。
所有相关插件似乎也已安装。
解决方案
我在这里解决了这个问题:https ://stackoverflow.com/a/58688536/8160903
(将 Docker 的路径添加到 Homebrew Jenkins plist /usr/local/Cellar/jenkins-lts/2.176.3/homebrew.mxcl.jenkins-lts.plist)
推荐阅读
- node.js - Nock.js:如何检查标头是否存在?
- c# - 数组中的这种排序有什么解决方案吗?
- reactjs - 在 react-datepicker 中更改语言环境
- javascript - 在 react native 中添加原生基础导入时无法加载包错误
- python - Pandas Dataframe 循环和从数据库更新
- google-photos - 使用 Google Photos API 时出现 403 Forbidden
- javascript - 将数组中缺少的连续数字打印为范围
- android - android.view.View android.view.View.findViewById(int)
- python - Spyder Python IDE - 更改编辑器文本问题
- android - 导航库充气机为数据类抛出 ClassNotFoundException