我遵循了两段代码,一项有效,另一段无效。我需要了解是否在agent
阶段内声明了凭据,是否识别了凭据,如果agent
在顶级/全局级别声明了凭据,则凭据不起作用并以错误结束。谁能帮助理解为什么会这样以及如何解决这个问题?
错误:
pipeline
{
environment {
DOCKER_REGISTRY='xxxxxxxxx'
DOCKER_CREDENTIAL='dcaas-r'
}
agent
{
docker {
image "xxxxxxxxx/dotnet:latest"
registryUrl env.DOCKER_REGISTRY
registryCredentialsId env.DOCKER_CREDENTIAL
reuseNode true
}
}
stages
{
stage('Test')
{
steps
{
sh 'dotnet --version'
}
}
}
}
Error response from daemon: Head "xxxxx/dotnet/manifests/latest": unknown: Authentication is required
成功:
pipeline
{
agent any
environment {
DOCKER_REGISTRY='xxxxxxxxx'
DOCKER_CREDENTIAL='dcaas-r'
}
stages
{
stage('Test')
{
agent
{
docker {
image "xxxxxxxxx/dotnet:latest"
registryUrl env.DOCKER_REGISTRY
registryCredentialsId env.DOCKER_CREDENTIAL
reuseNode true
}
}
steps
{
sh 'dotnet --version'
}
}
}
}
为了不写相同agent
的块,可以做些什么stages
?
如果您有一个全局代理指令,那么您不需要将 docker 值指定为环境变量,因为
它看起来像:
agent {
docker {
image 'xxxxxxxxx/dotnet:latest'
registryUrl 'xxxxxxxxx'
registryCredentialsId 'dcaas-r'
reuseNode true
}
}
您将只查看阶段的日志,因此不会记录全局指令。这意味着您将无法agent
在全局指令中看到 docker 的图像检索日志。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句