- 我在 Amazon ECR 存储库中有一个名为 Workshop 的图像
- 我有一个 Dockerfile 来提取该镜像
- CodeBuild 应从 Dockerfile 构建新镜像
问题:
pull access denied for xxxxxxxxxxx.dkr.ecr.eu-central-1.amazonaws.com/workshop, repository does not exist or may require 'docker login'
在我的 buildspec 文件中,我尝试使用 docker 登录,但没有任何变化。
phases:
pre_build:
commands:
- echo Logging in to Amazon ECR...
- $(aws ecr get-login --no-include-email --region $AWS_DEFAULT_REGION)
- aws ecr get-login-password --region eu-central-1 | docker login --username AWS --password-stdin
xxxxxxxxx.dkr.ecr.eu-central-1.amazonaws.com
- CODEBUILD_RESOLVED_SOURCE_VERSION="${CODEBUILD_RESOLVED_SOURCE_VERSION:-$IMAGE_TAG}"
- IMAGE_TAG=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)
Dockerfile 看起来像这样:
FROM xxxxxxxxxxx.dkr.ecr.eu-central-1.amazonaws.com/workshop:latest
CMD ["echo", "Hallo!"]
RUN code-server
什么可能导致该问题?
最佳答案
尝试更新您的 aws-cli 并使用最新版本,因为 get-login
已弃用。
新命令是这样的:
aws ecr get-login-password \
--region <region> \
| docker login \
--username AWS \
--password-stdin <aws_account_id>.dkr.ecr.<region>.amazonaws.com
引用文献:
关于docker - Amazon ECR 的拉取访问被拒绝,存储库不存在或可能需要 'docker login',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65831129/