尝试在Jenkinsfile中传递两个构建参数。
使用单个--build-arg:
app = docker.build("myimg:${Version}", "--build-arg VERSION=${Version} --no-cache ."
但不适用于以下几种情况:
app = docker.build("myimg:${Version}", "--build-arg VERSION=${Version} --build-arg CODEARTIFACT_TOKEN=${CODEARTIFACT_TOKEN} --no-cache ."
输出错误:"docker build" requires exactly 1 argument.
如何传递两个或多个构建参数?
2条答案
按热度按时间jdgnovmf1#
感觉这是Jenkins对你的期望。
Jenkins医生说
通过将其他参数添加到build()方法的第二个参数,可以将它们传递给docker build。当以这种方式传递参数时,字符串中的最后一个值必须是docker文件的路径,并且应该以用作构建上下文的文件夹结尾)
您应该尝试将
-f ${dockerfile}
添加到上下文.
之前,因此它看起来如下所示app = docker.build("myimg:${Version}", "--build-arg VERSION=${Version} --build-arg CODEARTIFACT_TOKEN=${CODEARTIFACT_TOKEN} --no-cache -f Dockerfile ."
假设您的Dockerfile位于当前文件夹中。
文档如下:
1.列表项
https://www.jenkins.io/doc/book/pipeline/docker/
lsmd5eda2#
问题不在于构建参数的数量,而在于CODEARTIFACT_TOKEN变量。
CODEARTIFACT_TOKEN变量可能包含新行。
因此,此行修复了该问题: