在 Jenkins 中使用 ECR 镜像作为代理

在 Jenkins 中使用 ECR 镜像作为代理

我想做的是在使用声明性管道时使用 ECR 映像作为 Jenkins 中的代理

当前管道脚本的顶部如下所示:

pipeline {
    agent {
        docker {
            image '01111111111.dkr.ecr.eu-west-1.amazonaws.com/some-repo/some-image'
        }
    }

我得到的错误是:

Error response from daemon: pull access denied for 01111111111.dkr.ecr.eu-west-1.amazonaws.com/some-repo/some-image, repository does not exist or may require 'docker login'

这是有道理的,ECR 需要登录,但您不能只使用标准的用户名和密码,因为它是一个令牌系统,所以它会随着时间而改变。

工作 EC2 实例具有从 ECR 中提取权限的角色,并且从 ECR 中提取权限在一个步骤中可以正常工作,它只是在代理指令中。

那么有没有人有办法解决这个问题或者有一个插件可以让我使用这个图像作为代理。

一个解决方法是拉出容器或在另一个作业中构建它,但如果有更新,这无济于事,而且它更像是一种解决方法,而不是解决方案

相关内容