【问题标题】:Cannot execute a shell script with docker command from Jenkins Pipeline step无法使用 Jenkins Pipeline 步骤中的 docker 命令执行 shell 脚本
【发布时间】:2018-12-13 12:42:45
【问题描述】:

我在 MacOS-HighSierra 上使用带有管道的 Jenkins 版本 2.121.1。

我有一个名为 build_docker_image.sh 的 shell 脚本,它使用以下命令构建 docker 映像:

docker build -t test_api:1 -f test-dockerfile

test-dockerfile 是一个 Dockerfile 并且有构建镜像的说明。

在 CLI 中,整个设置工作正常! 但是,当我从 Jenkins 服务器流水线上下文中运行它时,它在上面一行失败并出现错误:docker: command not found

从 Jenkins 服务器触发的步骤很简单。调用脚本:

stage ('Build-Docker-Image') {
    steps {
        sh '/path/to/build-docker_image.sh'
    }
 }

在 Jenkinsfile 中,我确保 $PATH 包含 Docker 的路径。

【问题讨论】:

  • > 我确保 $PATH 包含 Docker 的路径。
  • @StephenKing 感谢您让我关注 $PATH。我正在使用声明式管道。因此,一旦我在它使用的环境指令中设置了环境变量,我就不需要在每个步骤中或在 shell 脚本中处理环境变量。
  • 感谢您告诉我。由于您省略了代码,这对我来说是最明显的事情......

标签: docker jenkins jenkins-pipeline


【解决方案1】:

问题是我正在附加实际的 docker 应用程序,例如 /Applications/Docker.app/Contents/Resources/bin/docker,而不是目录 /Applications/Docker.app/Contents/Resources/bin

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    • 2020-06-24
    • 2021-01-20
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多