Невозможно извлечь из ECR в Docker Build - PullRequest
2 голосов
/ 12 марта 2019

У меня возникают проблемы с учетными данными, когда я пытаюсь извлечь образ из ECR как часть сборки Docker, используя AWS CodeBuild.

Для контекста, наша установка такова: :

Codebuild вызывает внутренний инструмент докера, который мы написали.Этот инструмент затем выполняет сборку Docker.Пример команды, которая может облегчить понимание:

../codebuild-templates/ourtoolscript docker -v

«ourtoolscript» - это просто скрипт bash, который устанавливает кучу переменных окружения и, наконец, вызывает docker, выполняемый с указанной командой.

Проблема
Мы пытаемся выполнить сборку докера с помощью этого инструмента.Он работает локально, он также работает с другими репозиториями, которые не извлекают изображение из ECR для построения.
Мы делаем это так, чтобы вся логика тегирования и все остальное было скриптом внутри инструмента, и мы можем просто применить его ккаждый репоПоэтому говорить, что просто делать сборку докера вне инструмента, не является приемлемым решением.

Если файл докера извлекается из ECR для «FROM», он потерпит неудачу с:

time="2019-03-12T14:48:25Z" level=error msg="Error listing credentials" error="ecr: Failed to get authorization token: MissingRegion: could not find region configuration"
Get https://URLTOECRWITHTAG: no basic auth credentials

Вещи, которые я пробовал :

Что я знаю :

  • Учетные данные, которые предоставляет CodeBuild, очень хорошо входят в наш инструмент.Так как он может тянуть и толкать без проблем
  • Я могу построить очень хорошо, если это не сборка из образа ECR
  • Что-то отличается от того, как сборка Docker выполняет тягу по сравнению с простоОбычная «Docker Pull» работает
  • Если я просто делаю простую «Docker build».без аргументов сборки, вне инструмента.Это тянет изображение просто отлично.Поэтому я думаю, что я иду по неправильному пути с этими переменными.

Другая информация :
Моя команда сборки Docker (некоторые дополнительные материалы удалены):

docker build --build-arg AWS_DEFAULT_REGION=$AWS_DEFAULT_REGION --build-arg AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI --rm --build-arg REPO='xyz.dkr.ecr.xyz.amazonaws.com' -f Dockerfile .
Sending build context to Docker daemon 16.64MB
...