Подтвердить что ты не робот

Нажать изображение докера в репозиторий amazon ecs

Im новый для AWS. Я хочу создать приватный репозиторий докеров в экземпляре контейнера AWS ECS. Я создал репозиторий с именем name. Примеры команд push, показанных AWS, работают.

aws ecr get-login --region us-west-2 
docker build -t name .
docker tag name:latest ############.dkr.ecr.us-west-2.amazonaws.com/name:latest 
docker push ############.dkr.ecr.us-west-2.amazonaws.com/name:latest

Но с помощью этих команд я создаю и подталкиваю изображение с именем name, и я хочу создать образ с именем foo. Поэтому я изменил команды:

docker build -t foo .
docker tag foo ###########.dkr.ecr.us-west-2.amazonaws.com/name/foo
docker push ###########.dkr.ecr.us-west-2.amazonaws.com/name/foo

Это должно работать, но это не так. После периода retrys я получаю сообщение об ошибке:

The push refers to a repository [###########.dkr.ecr.us-west-2.amazonaws.com/name/foo]
8cc63cf4528f: Retrying in 1 second
...
name unknown: The repository with name 'name/foo' does not exist in the registry with id '############'

Требуется ли AWS специальный репозиторий для каждого изображения, которое я хочу нажать?

4b9b3361

Ответ 1

EC2 Container Registry требует репозиторий изображений для быть настроен для каждого изображения "имя" или "пространство имен/имя", которое вы хотите опубликовать в реестре.

Вы можете публиковать любые :tags, которые вы хотите в каждом репозитории, хотя (предел по умолчанию - 100 тегов).

Я не видел нигде в документации AWS, в которой конкретно указано расположение репозитория → image name, но оно подразумевается Создание репозитория - Раздел 6d в Руководство пользователя ECR

Docker Image spec включает в себя определение репозитория

Repository

Коллекция тегов, сгруппированных под общим префиксом (компонент имени до :). Например, в изображении, помеченном именем my-app:3.1.4, my-app - это компонент репозитория имени. имя репозитория состоит из компонентов, разделенных словом, необязательно с префиксом имени хоста DNS. Имя хоста должно соответствовать стандартные правила DNS, но не могут содержать символы _. Если имя хоста присутствует, он может необязательно сопровождаться номером порта в формате :8080. Компоненты имени могут содержать строчные символы, цифры и сепараторы. Сепаратор определяется как период, один или два подчеркивания или одно или несколько тире. Компонент имени может не запускаться или с разделителем.

Ответ 2

Не нужно создавать репо на изображение, просто реструктурируйте именование:

docker build -t foo .
docker tag foo ####.dkr.ecr.us-west-2.amazonaws.com/name:foo_v0.23.1
docker push ####.dkr.ecr.us-west-2.amazonaws.com/name:foo_v0.23.1