首页 > 解决方案 > 来自 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/

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

标签: dockerjenkinsjenkins-pipeline

解决方案


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

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


推荐阅读