Я хочу отправить уже созданные образы докеров в aws ecr

#amazon-web-services #shell #terraform #amazon-ecr

Вопрос:

Я уже создал образы докеров, я хочу перенести все внешние образы докеров в aws ECR с помощью скрипта или конвейера CI/CD.

Одним выстрелом я знаю AWS CodeBuild процесс. Но есть ли какой-нибудь другой способ сделать это?

Комментарии:

1. Да, есть масса способов сделать это. Что конкретно вы хотите сделать, что именно вы пробовали и где вы застряли?

Ответ №1:

docker push

Я уже создал образы докеров

Как вы сказали, изображения создаются локально. Итак, у вас есть эти изображения в вашей файловой системе.

В этом случае вы можете захотеть 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-архив/мигратор: Инструмент для переноса изображений Docker из реестра Docker Hub или v1 в реестр v2. К сожалению, хранилище было заархивировано. Но должно сработать.

 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
 

Ответ №2:

Существует множество способов для CI/CD. Например, вы можете использовать действия на GitHub

В бесплатной учетной записи у вас есть:

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

Таким образом, вы можете создать частное хранилище и отправить все файлы с помощью Dockerfile.

После этого создайте действия и настройте задание, которое создаст ваш образ Docker, а затем отправит его в ECR

Для действий на GitHub существует действие Amazon ECR «Вход»

     - 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.