Jenkins 声明性管道 docker:找不到命令

Jenkins Declarative pipeline docker: command not found

我已经在我的机器上本地安装了 Jenkins。我从我的 github 存储库中提取了一些源代码,该存储库在根目录中有一个 Docker 文件。我想构建 docker 图像并将其推送到 docker 集线器,但我的构建失败并显示以下消息...

docker build -f myapp-web:latest . \n
/Users/Shared/Jenkins/Home/workspace/MyApp@tmp/durable-ee9851e9/script.sh: line 1: docker: command not found 
pipeline {

    agent any

    tools {
        maven 'maven_3.6.1'
        jdk 'jdk8'
    }

    stages {
        stage('Build') {
            steps {
                withMaven(maven: 'maven_3.6.1', mavenSettingsConfig: '5d7a8237-6d6a-4189-a907-518900dc7755') {
                    sh "mvn clean install "
                }
            }
        }
        stage('Build Image') {
            steps {
                script {
                    sh 'docker build -f myapp-web:latest .'
                }
            }
        }
        stage('Deploy Image') {
            steps {
                withDockerRegistry([credentialsId: "docker-hub", url: ""]) {
                    sh 'docker push myapp-web:latest'
                }
            }
        }
    }
}

Docker 在我的本地机器上安装 运行 并且 Jenkins 配置了以下插件 Docker 管道 Docker 插件

非常感谢任何想法

如果您正在通过管道获取 docker: command not found,尽管它已经安装在管道 运行ning 所在的同一节点上,您需要确保管道正在读取正确的 [=13] =] docker 二进制文件应该存在的环境。

对于您提到的第二期

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

您需要将管道中正在使用的用户添加到 docker 组,以便它可以 运行 docker 命令使用:

usermod -aG docker $USER