You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins推送镜像时提示找不到aws_credential凭证求助

Jenkins Pipeline推送AWS ECR镜像时"找不到aws_credential凭证"的解决办法

问题根源

你创建的aws_credential是Jenkins的AWS专用类型凭证,但docker.withRegistry()方法默认只支持用户名+密码类型的凭证,直接传入AWS凭证ID自然匹配不到。

可行修复方案

方案一:用AWS凭证插件生成临时Docker登录信息(推荐)

利用AWS Credentials插件提供的工具方法,自动获取ECR的临时登录凭证,再传给docker.withRegistry():

script {
    // 通过AWS凭证获取ECR临时登录信息
    def ecrAuth = aws.ecr('aws_credential').login()
    
    // 使用临时凭证完成镜像推送
    docker.withRegistry(ecrAuth.endpoint, ecrAuth.username, ecrAuth.password) {
        def image = docker.image(imageName)
        image.push()
    }
}

这种方式不需要手动管理密码,临时凭证会自动过期,安全性更高。

方案二:创建兼容的用户名密码凭证(不推荐)

如果一定要保留docker.withRegistry(registryCredentialsId)的写法,可以手动创建一个用户名密码类型的凭证:

  • 用户名固定填AWS
  • 密码填你的AWS账号Secret Access Key
  • 凭证ID设为aws_credential
    注意:这种方式会长期存储Secret Access Key,存在泄露风险,不建议在生产环境使用。

额外检查项

  • 确认aws_credential凭证的可见范围:要么是全局凭证,要么是Pipeline所在项目/文件夹的专属凭证
  • 检查执行Pipeline的Jenkins用户是否有读取该凭证的权限(在凭证管理页面的"权限"设置里确认)

内容的提问来源于stack exchange,提问作者tzr0125

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 16:12:05