有了这个最小的Jenkins Pipeline脚本
node { docker.build("foo", "--build-arg x=y") }
我收到一个令人困惑的错误
“ docker build”仅需要1个参数。
但是根据文档,的签名docker.build()是build(image[, args])(来自Jenkins /job/dockerbug/pipeline-syntax/globals#docker)
docker.build()
build(image[, args])
/job/dockerbug/pipeline-syntax/globals#docker
build(image[, args]) 运行docker build以从当前目录中的Dockerfile创建并标记指定的图像。可以添加其他arg,例如'-f Dockerfile.other --pull --build-arg http_proxy=http://192.168.1.1:3128 .'。像docker build一样,args必须以build上下文结尾。返回生成的Image对象。在构建中记录FROM指纹。
运行docker build以从当前目录中的Dockerfile创建并标记指定的图像。可以添加其他arg,例如'-f Dockerfile.other --pull --build-arg http_proxy=http://192.168.1.1:3128 .'。像docker build一样,args必须以build上下文结尾。返回生成的Image对象。在构建中记录FROM指纹。
'-f Dockerfile.other --pull --build-arg http_proxy=http://192.168.1.1:3128 .'
这是怎么回事?
我的困惑是因为错误消息实际上来自Docker,而不是Jenkins。
如果您未指定构建上下文(如以上文档中所述),则Docker会出现此错误。
解决方法只是.按照示例将其添加到args参数的末尾,例如:
.
node { docker.build("foo", "--build-arg x=y .") }