【问题标题】:I want to push already created docker images to aws ecr我想将已经创建的 docker 图像推送到 aws ecr
【发布时间】:2021-11-13 03:54:43
【问题描述】:

我已经创建了 docker 镜像,我想使用脚本或 CI/CD 管道将所有外部 docker 镜像推送到 aws ECR。

一口气,我知道AWS CodeBuild 进程。 但是有没有其他办法呢?

【问题讨论】:

  • 是的,有很多方法可以做到这一点。你具体想做什么,你尝试过什么,你在哪里卡住了?

标签: amazon-web-services shell terraform amazon-ecr


【解决方案1】:

CI/CD 有很多方法。 例如,您可以使用 GitHub Actions

在您拥有的免费帐户中:

2,500 free credits/week
Run 1 job at a time
Build on Linux, Windows, and Arm

因此,您可以创建一个私有存储库并使用 Dockerfile 推送所有文件。

之后创建 Actions 并配置一个作业,该作业将构建您的 Docker 映像,然后将其推送到 ECR

Amazon ECR "Login" Action for GitHub Actions

    - name: Login to Amazon ECR
      id: login-ecr
      uses: aws-actions/amazon-ecr-login@v1

    - name: Build, tag, and push image to Amazon ECR
      env:
        ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
        ECR_REPOSITORY: my-ecr-repo
        IMAGE_TAG: ${{ github.sha }}
      run: |
        docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
        docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG

它可以作为:

  • 您将更改推送到存储库
  • 操作开始,构建 docker 映像,然后将 docker 映像推送到 AWS ECR。

【讨论】:

    【解决方案2】:

    docker push

    我已经创建了 docker 镜像

    如您所说,图像是在本地创建的。因此,您的文件系统中有这些图像。

    对于这种情况,您可能需要docker push

    例如

    docker image push registry-host:<port>/myimagetag:latest
    

    对于ECS

    docker push aws_account_id.dkr.ecr.region.amazonaws.com/myimagetag:tag
    

    migrator

    有一个项目docker-archive/migrator: Tool to migrate Docker images from Docker Hub or v1 registry to a v2 registry。不幸的是,存储库已存档。但应该可以。

    docker run -it \
        -v /var/run/docker.sock:/var/run/docker.sock \
        -e AWS_ACCESS_KEY_ID=<key> \
        -e AWS_SECRET_ACCESS_KEY=<secret> \
        -e V1_REGISTRY=v1.registry.fqdn \
        -e V2_REGISTRY=v2.registry.fqdn \
    docker/migrator
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-13
      • 2021-07-27
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 2019-07-24
      相关资源
      最近更新 更多