此问题在此处已有答案:
Jenkins: how to use variables inside agent docker args?(1个答案)
2天前关闭。
我有一个使用Docker代理的Jenkins管道。我希望用户能够指定图像存储库中的哪个标记用于管道。在下面的示例中,管道有一个用户可以指定的名为tag
的参数,该参数附加(连接)到Docker代理的image
参数。完整示例如下所示。
#!/usr/bin/env groovy
def call(String tag = 'latest') {
pipeline {
agent {
docker {
image "analytics/rsc:${tag}"
registryUrl 'my.local.registry'
...
}
}
...
}
}
这将引发错误
...12: Invalid config option "call" for agent type "docker". Valid config options are [image, alwaysPull, args, containerPerStageRoot, customWorkspace, label, registryCredentialsId, registryUrl, reuseNode] @ line 12, column 17.
image analytics/rsc:${tag}
我尝试过image
参数的其他变体,包括
image "analytics/rsc:" + "${tag}"
以及
image 'analytics/rsc:' + tag
这些方法都不起作用(我得到了与第一个示例类似的错误,其中没有计算变量tag
,而是传递了文本"tag"
。
1条答案
按热度按时间kcugc4gi1#
这是一个已知的问题,被报告为JENKINS-42369。不幸的是,我不认为他们会很快修复它,因为它是6年前报告的。
您可以尝试this workaround,但变通方法并非在所有情况下都有效。