У меня возникают проблемы с учетными данными, когда я пытаюсь извлечь образ из 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