【问题标题】:"Docker: command not found" from Jenkins on MacOS来自 Jenkins 在 MacOS 上的“Docker:找不到命令”
【发布时间】:2018-07-31 04:56:16
【问题描述】:

当使用流水线语法和 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/进行本地安装。

似乎也安装了所有相关插件。

【问题讨论】:

    标签: docker jenkins jenkins-pipeline


    【解决方案1】:

    我在这里解决了这个问题:https://stackoverflow.com/a/58688536/8160903

    (将 Docker 的路径添加到 Homebrew Jenkins plist /usr/local/Cellar/jenkins-lts/2.176.3/homebrew.mxcl.jenkins-lts.plist

    【讨论】:

    • 你拯救了我的一天
    【解决方案2】:

    我会检查运行 jenkins 进程的用户,并确保他们是 docker 组的一部分。

    【讨论】:

    • 这只会帮助 AFAIK 访问 docker 套接字,而不是可执行文件。
    • 不幸的是,关于为 MacOS 设置组的 Docker 文档链接到通用入门文档,该文档本身链接到 Linux 文档,实际上不适用于 MacOS >_docs.docker.com/get-started/#test-docker-version
    • 不再有 docker 组。请参阅:forums.docker.com/t/no-more-docker-group/9123。另外:员工组也不工作。 sudo 是必需的
    【解决方案3】:

    您可以尝试将您机器上的docker 可执行文件的完整路径添加到Manage Jenkins > Global Tool Configuration 的Jenkins。

    我看到有时启动 Jenkins 的用户在 $PATH 上没有可执行文件的位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-06
      • 1970-01-01
      • 2022-08-17
      • 2021-12-02
      • 2015-12-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多