amazon-web-services - 如何在 Jenkins 中将 Docker 镜像推送到 ECR?

标签 amazon-web-services docker jenkins docker-image amazon-ecr

我正在与 Jenkins 合作。我正在尝试将图像推送到 ECR .我正在使用本地 Docker 来构建图像。
下面是我的 Jenkins 文件:

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                bat  'docker build -t sampleapp -f SampleApp/Dockerfile .'
            }
        }
        stage('Push image') {
         steps {
           withDockerRegistry([url: "https://536703334988.dkr.ecr.ap-southeast-2.amazonaws.com/test-repository",credentialsId: "ecr:ap-southeast-2:demo-ecr-credentials"]) {
           bat 'docker push sampleapp:latest'
               }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying....'
            }
        }
    }
}
在上面的代码中,我能够构建和创建图像。在第二阶段,我面临的问题。我收到以下错误:
$ docker login -u AWS -p ******** https://536703334988.dkr.ecr.ap-southeast-2.amazonaws.com/test-repository

WARNING! Using --password via the CLI is insecure. Use --password-stdin.  
Login Succeeded
C:\Program Files (x86)\Jenkins\workspace\SampleAppPipeLine>docker push sampleapp:latest 
The push refers to repository [docker.io/library/sampleapp]
a160522d6d0e: Preparing
2e2c2606bd45: Preparing
9b0a482c69b1: Preparing
995a0cc6a5f6: Preparing
c1b55dcb46c2: Preparing
cf5b3c6798f7: Preparing
cf5b3c6798f7: Waiting
    
denied: requested access to the resource is denied

有人可以帮我解决这个问题吗?任何帮助,将不胜感激。
谢谢。

最佳答案

docker.io的默认存储库正在hardcode是:docker.io/library/
因此,对于 AWS ECR 存储库,您应该:

docker build -t test-repository .

docker tag test-repository:latest 536703334988.dkr.ecr.ap-southeast-2.amazonaws.com/test-repository:latest


docker push 536703334988.dkr.ecr.ap-southeast-2.amazonaws.com/test-repository:latest

确保 test-repository repo 已在 ECR 上创建。

关于amazon-web-services - 如何在 Jenkins 中将 Docker 镜像推送到 ECR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58181267/

相关文章:

python - Docker 撰写缺少的 python 包

java - Jenkins 部署插件正在部署到 tomcat 但未启动应用程序

Jenkins SSH 插件 : Parameterizing remote host

Maven jgitflow 插件

amazon-web-services - 如何使用aws autoscaling基于自动缩放组的单个实例进行缩放?

wordpress - AWS EFS 性能下降

docker - 使用 Docker 时如何在 Traefik 中使用 STS header

linux - Elasticsearch 7.6 监听环回地址但不监听服务器 IP

amazon-web-services - 如何使用 CloudFormation 在自定义源上设置源路径?

java - 连接到在 Docker 中运行的 Kafka