【发布时间】:2022-11-30 18:57:58
【问题描述】:
我正在使用 CodePipeline 将我的图像推送到 ECR,它从 GitHub 获取存储库,并在将其推送到 ECR 之前尝试构建它。我想出了如何通过 aws ecr get-login-password 命令登录 AWS ECR。但主要问题是,在 post_build 阶段,当我尝试运行命令 docker push 时。它返回给我的错误是:没有基本的身份验证凭据
我的 buildspec.yml 文件:
phases:
install:
runtime-versions:
nodejs: 16
pre_build:
commands:
- echo Installing Dependencies
- npm install
- docker logout
- aws ecr get-login-password || docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com
build:
commands:
- docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG .
- docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG
post_build:
commands:
- echo Pushing the docker image
- docker -v
- aws --version
- docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG
- printf '[{"name":"%s","imageUrl":"%s"}]' $CONTAINER_NAME $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG > imagedefinitions.json
artifacts:
files: imagedefinitions.json
来自 AWS Codebuild 的截图:
【问题讨论】:
-
顺便说一句,当我在本地环境中执行所有步骤时,我不会收到此错误。当我尝试通过 CodeBuild 执行此操作时,它给了我这个错误。
标签: amazon-web-services amazon-ecs aws-codepipeline aws-codebuild amazon-ecr