这里的情况是,我们有一个应用程序当前正在构建在 Jenkins 从站上,并在其上安装了某个版本的节点。我们想要标准化构建环境,因此想要在 docker 容器中构建。
通过我的研究,这绝对是可能的。然而,我们面临的挑战是我们想要使用我们自己管理并存储在 ECR 中的自定义图像。我们不想使用 docker hub 上的那些。考虑到这一限制,我正在努力在我的 Jenkinsfile 中对我们的 ECR 进行身份验证。理想情况下,我可以做这样的事情:
pipeline {
agent {
docker {
image 'node:7'
registryUrl 'ecr_url.amazonaws.com'
registryCredentialsId 'ecr:us-east-1:iam_role'
}
}
stages {
stage('Build') {
steps {
sh 'command goes here'
}
}
}
}
但这里的问题是我们的 ECR 登录依赖于在 Jenkins 工作人员(安装了 aws cli)上运行 shell 命令来登录和访问映像。到目前为止,我没有运气在 Jenkinsfile 中进行身份验证,因此我可以提取图像来运行构建。有谁知道这是否可行,如果可以,如何编辑 Jenkinsfile 来做到这一点?