Jenkins Pipeline docker.build()给出了错误"" docker build"只需要1个参数'

时间:2017-09-01 10:21:16

标签: docker jenkins jenkins-pipeline

使用这个最小的Jenkins管道脚本

node {
  docker.build("foo", "--build-arg x=y")
}

我收到了一个令人困惑的错误

  

" docker build"只需要1个参数。

但根据文档,docker.build()的签名为build(image[, args])(来自Jenkins /job/dockerbug/pipeline-syntax/globals#docker

  

build(image[, args])

     

运行docker build以创建和标记指定的   来自当前目录中的Dockerfile的图像。额外的args可能   添加,例如'-f Dockerfile.other --pull --build-arg http_proxy=http://192.168.1.1:3128 .'。像docker build一样,args必须   以构建上下文结束。返回生成的Image对象。   在构建中记录FROM指纹。

发生了什么?

1 个答案:

答案 0 :(得分:25)

我的困惑是因为错误信息实际上来自Docker,而不是Jenkins。

如果您没有指定构建上下文,则Docker会出现此错误(如上文所述)。

修复只是按照示例将.添加到a​​rgs参数的末尾,例如:

node {
  docker.build("foo", "--build-arg x=y .")
}

请参阅docker: "build" requires 1 argument. See 'docker build --help'