首页 > 解决方案 > 詹金斯码头工人:找不到命令

问题描述

我已经在本地机器(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 的新手,并试图通过谷歌解决这个问题,但没有发现任何帮助。有人可以帮我解决这个问题吗?

标签: dockerjenkins

解决方案


在 Jenkins 启动的上下文中,二进制文件的路径docker可能不在您的PATH变量中。尝试通过提供可执行文件的完整路径来执行 docker,在我的情况下是:/usr/local/bin/docker. 如果 Jenkins 是由 launchctl 直接启动并且不选择您的 bash 或 zsh 环境,则会出现这种情况。如果您在 docker 容器中启动了 Jenkins,但是找不到 docker 可执行文件的原因是不同的。您的 Jenkins 容器中没有安装 docker。但我怀疑情况是否如此。


推荐阅读