docker - 詹金斯码头工人:找不到命令
问题描述
我已经在本地机器(MAC OS)和 docker 上安装了 Jenkins。我创建了包含以下代码的 Jenkinsfile
pipeline {
agent {
docker { image 'python:2.7' }
}
stages {
stage('Test') {
steps {
sh 'python --version'
}
}
}
}
现在单击立即生成,这给了我这样的错误
+ docker inspect -f . python:2.7
/Users/PKD/.jenkins/workspace/gfffffgfg@tmp/durable-42c1e897/script.sh: line 1: docker:
command not found
[Pipeline] isUnix
[Pipeline] sh
+ docker pull python:2.7
/Users/PKD/.jenkins/workspace/gfffffgfg@tmp/durable-0ffec7d7/script.sh: line 1: docker:
command not found
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 127
Finished: FAILURE
我是 Jenkins 的新手,并试图通过谷歌解决这个问题,但没有发现任何帮助。有人可以帮我解决这个问题吗?
解决方案
在 Jenkins 启动的上下文中,二进制文件的路径docker
可能不在您的PATH
变量中。尝试通过提供可执行文件的完整路径来执行 docker,在我的情况下是:/usr/local/bin/docker
. 如果 Jenkins 是由 launchctl 直接启动并且不选择您的 bash 或 zsh 环境,则会出现这种情况。如果您在 docker 容器中启动了 Jenkins,但是找不到 docker 可执行文件的原因是不同的。您的 Jenkins 容器中没有安装 docker。但我怀疑情况是否如此。
推荐阅读
- python - 从包含字符的嵌套字典中删除对
- python - 使用列表推导转换列表
- sql - 将上一个时间戳值添加到 HIVE 查询中特定列的下一个时间戳值
- vega - 在 Vega 中悬停时突出显示多个标记
- javascript - For循环Javascript中的添加和减去按钮
- arrays - 使在 main 中初始化的数组可供其他函数访问
- c - 插入节点 - C 中的内存泄漏
- reactjs - Pdftron 设置,获取 Http 404 文件未找到错误,同时参考 index.html 用于反应应用程序
- python - 将序列化程序方法字段添加到 generics.ListAPIView - Django
- c# - 如何为与 windows 和 linux 兼容的 C# 应用程序创建 VPN 客户端