繁体   English   中英

如何将Docker镜像推送到Jenkins中的ECR?

[英]How to push Docker image to ECR in Jenkins?

我正在使用 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 标签测试存储库:最新 536703334988.dkr.ecr.ap-southeast-2.amazonaws.com/test-repository:最新

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM