jenkins 向www.example.com传递docker.build几个--build-arg参数

hzbexzde  于 2023-03-01  发布在  Jenkins
关注(0)|答案(2)|浏览(180)

尝试在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.
如何传递两个或多个构建参数?

jdgnovmf

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/

lsmd5eda

lsmd5eda2#

问题不在于构建参数的数量,而在于CODEARTIFACT_TOKEN变量。
CODEARTIFACT_TOKEN变量可能包含新行。
因此,此行修复了该问题:

CODEARTIFACT_TOKEN = CODEARTIFACT_TOKEN.trim()

相关问题