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

Joh*_*ter 17 jenkins docker jenkins-pipeline

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

node {
  docker.build("foo", "--build-arg x=y")
}
Run Code Online (Sandbox Code Playgroud)

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

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

但根据文档,签名docker.build()build(image[, args])(来自詹金斯/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指纹.

这是怎么回事?

Joh*_*ter 35

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

如果您未指定构建上下文,则Docker会出现此错误(如上文中所述).

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

node {
  docker.build("foo", "--build-arg x=y .")
}
Run Code Online (Sandbox Code Playgroud)

请参阅docker:"build"需要1个参数.请参阅'docker build --help'

  • 请注意此问题:https://issues.jenkins-ci.org/browse/JENKINS-41395 (4认同)