在声明性Jenkins管道中与DockerRegistry一起使用时,“无法运行程序“ docker””

时间:2018-09-17 14:15:28

标签: docker jenkins jenkins-plugins jenkins-pipeline

我正在重构旧的脚本化的jenkins管道,并试图利用漂亮的jenkins声明性语法。 但是我在尝试使用我们的私人Docker注册中心进行身份验证时遇到问题。

在线资源告诉我这应该起作用:

            steps {
                sh 'docker -v'
                withDockerRegistry([url: DOCKER_REGISTRY_URL, credentialsId: DOCKER_REGISTRY_CREDENTIALS]) {
                    pushDockerImage()
                }
            }

第一行“ docker -v”正确执行,并打印出当前的docker版本。 但是,当尝试执行“ withDockerRegistry”时,它将失败并显示:

  

无法运行程序“ docker”:error = 2,没有这样的文件或目录

我的语法有误还是缺少某种全局配置?

干杯

1 个答案:

答案 0 :(得分:0)

在withDockerRegistry中添加一个工具名称:

withDockerRegistry(registry: [url: DOCKER_REGISTRY_URL, credentialsId: DOCKER_REGISTRY_CREDENTIALS], toolName: 'docker')

还在“全局工具配置”中设置docker。