我有一个使用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"
。
这是一个已知的问题,报告为JENKINS-42369。不幸的是,我认为他们不会很快解决这个问题,因为这个问题是6年前报告的。
您可以尝试这个解决方案,但解决方案并不是在所有情况下都有效。