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