1. IAM User -> New User -> Demo_ECR
Add Permissions policies 新增許可
a. 直接連接現有政策 AmazonEC2ContainerRegistryPowerUser
b. 建立policies -> Demo_ECR https://docs.aws.amazon.com/AmazonECR/latest/userguide/security-iam-awsmanpol.html
2. install aws cli tools windows
https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-windows.html
3. aws ecr repositories -> private -> create repository
input demo
Keep ooxxooxxooxxooxx.dkr.ecr.ap-northeast-1.amazonaws.com/demo
save
4. aws cli login powershell windows
aws configure
go back IAM, show Demo_ECR -> 安全登入資料 security login
run 建立存取金鑰 create Access Key
copy new Access Key ID and AWS Secret Access Key
back aws configure. Input Access Key ID, Secret Access Key, ap-northeast-1 and Enter
5. docker login
aws ecr get-login-password --region ap-northeast-1
copy return Text like: eyJwYXlsb2FkIjoieE9hcWgzYmdPOXpN...............
6. docker image craete
First check your docker image: docker image ls
REPOSITORY = Image Name.
Tag is import.
Example "demo" is my image that want to send to aws repository.
docker tag "your image name":"your image" tag "aws repository URI"
docker tag demo:latest ooxxooxxooxxooxx.dkr.ecr.ap-northeast-1.amazonaws.com/demo
check "docker image ls" again
Now you can see new repository: ooxxooxxooxxooxx.dkr.ecr.ap-northeast-1.amazonaws.com/demo
7. docker image push
docker push ooxxooxxooxxooxx.dkr.ecr.ap-northeast-1.amazonaws.com/demo
Finish.
ERROR
Q: error parsing HTTP 403 response body: unexpected end of JSON input: ""
A: When you step 3. Image scan settings:get error If you check true. You can change false then push success.
A. other way.
https://github.com/aws/aws-toolkit-azure-devops/issues/311
https://stackoverflow.com/questions/34423873/docker-push-to-aws-ecr-private-repo-failing-with-malformed-json
go back step 1. change policy.