도커 이미지를 Amazon ECR 레지스트리로 푸시하려고합니다. docker client Docker 버전 1.9.1, build을 사용하고 a34a1d5
있습니다. aws ecr get-login --region us-east-1
docker login creds를 얻는 데 사용 합니다. 그런 다음 다음과 같이 해당 cred에 성공적으로 로그인합니다.
docker login -u AWS -p XXXX -e none https://####.dkr.ecr.us-east-1.amazonaws.com
WARNING: login credentials saved in /Users/ar/.docker/config.json
Login Succeeded
그러나 이미지를 푸시하려고하면 다음 오류가 발생합니다.
$ docker push ####.dkr.ecr.us-east-1.amazonaws.com/image:latest
The push refers to a repository [####.dkr.ecr.us-east-1.amazonaws.com/image] (len: 1)
bcff5e7e3c7c: Preparing
Post https://####.dkr.ecr.us-east-1.amazonaws.com/v2/image/blobs/uploads/: no basic auth credentials
AWS 사용자에게 올바른 권한이 있는지 확인했습니다. 또한 리포지토리에서 해당 사용자가 푸시 할 수 있도록했습니다. 문제가 아닌지 확인하기 위해 모든 사용자에게 모든 액세스 권한을 허용하도록 레지스트리를 설정했습니다. 아무것도 "no basic auth credentials"
오류를 변경하지 않습니다 . 모든 트래픽이 암호화되어 있기 때문에 디버깅을 시작하는 방법을 모르겠습니다.
최신 정보
그래서 나는 내 문제의 근본 원인을 깨달았을 때 약간의 호머 심슨 도모 순간을 보냈습니다. 여러 AWS 계정에 액세스 할 수 있습니다. 심지어 사용 된 나는 비록 aws configure
내가 AWS의 CLI가 실제로 환경 변수를 사용하던 설정 내 저장소를했다 계정에 대한 내 자격 증명을 설정 AWS_ACCESS_KEY_ID
하고 AWS_SECRET_ACCESS_KEY
. 그래서 내가 할 때 aws ecr get-login
잘못된 계정에 대한 로그인을 반환했습니다. 제안 된 답변 중 일부를 시도하기 위해 방금 돌아갈 때까지 계좌 번호가 다르다는 것을 알지 못했습니다. 환경 변수를 제거하면 모든 것이 올바르게 작동합니다. 이야기의 좌우명은이 오류가 발생하면 로그인 한 저장소가 이미지에 적용 한 태그와 일치하는지 확인하십시오.