Использование AWS ECR с портированными изображениями push / pull не работает

У меня возникли проблемы с правильной работой portainer с AWS ECR. Я запустил свои изображения в ECR, и если я запустил docker-compose из командной строки через SSH, он будет работать должным образом. Если я сделаю простой docker pull {myid}.dkr.ecr.eu-west-1.amazonaws.com/{repository}, он тоже будет работать.

Но если я пытаюсь перейти к тому же изображению через графический интерфейс портаейнера и нажимаю pull / push, я всегда получаю это сообщение:

Настройки моего репозитория:  введите описание изображения здесь По крайней мере, с помощью portainer я могу иметь хороший обзор моего работающего контейнера и доступных изображений, но жаль, что пока я не могу их обновить с графическим интерфейсом. Обычно при обновлении я нажимаю (со своего локального компьютера), а затем в portainer воссоздаю контейнер и указываю, что нужно вытащить новый образ. Конечно, сейчас я не могу с этим не справиться.

При использовании docker cli я могу делать все, что хочу, нажимать, тянуть, и моя docker-compose, использующая мои образы ECR, может работать без проблем.

Заранее спасибо.


person Slade    schedule 02.08.2020    source источник
comment
Вы еще не нашли решение? У меня такая же проблема ..   -  person aghost    schedule 23.09.2020
comment
К сожалению, нет, я использую aws cli для этого с моими задачами npm. Если интересно, я добавил решение в свой пост.   -  person Slade    schedule 31.10.2020


Ответы (2)


К сожалению, нет, я использую aws cli для этого с моими задачами npm. Если интересно, вот это:

  "publish": "npm run _docker:build && npm run _aws:auth && npm run _aws:tag && npm run _aws:push && npm run _docker:prune",
  "_docker:build": "docker build -t *yourImageName* .",
  "_aws:auth": "aws ecr get-login-password --region eu-west-1 | docker login --username AWS --password-stdin *yourID*.dkr.ecr.eu-west-1.amazonaws.com",
  "_aws:tag": "docker tag *yourImageName:latest* yourID.dkr.ecr.eu-west-1.amazonaws.com/*yourImageName*:latest",
  "_aws:push": "docker push *yourID*.dkr.ecr.eu-west-1.amazonaws.com/*yourImageNam*e:latest",
  "_docker:prune": "docker image prune -f"

`

person Slade    schedule 31.10.2020

Я решил эту проблему, создав задание cron на сервере, которое запускает сценарий входа в репозиторий AWS ECR (объяснение: здесь) каждые 30 минут или около того. Таким образом, вам не нужно добавлять реестр в портейнер.

Вы можете получить пароль через интерфейс командной строки AWS, описанный здесь и используйте его для входа в портейнер. Но причина, по которой это плохая идея, заключается в том, что AWS сбрасывает пароль дважды в день, поэтому вход в систему будет действителен только в течение 12 часов.

person aghost    schedule 11.12.2020