awsのECRとDockerを連携する方法
- 公開日:
- 更新日:
- 文字数:1835文字
awsがインストールされていることが前提。
-------
awsにプライベートリポジトリを作成
https://zenn.dev/hibriiiiidge/books/49ee4063b10cec1df1a2/viewer/710b27
-------
(1)-----
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 526983118746.dkr.ecr.us-east-1.amazonaws.com
-----
エラーが表示されます。
Unable to locate credentials. You can configure credentials by running "aws configure". Error: Cannot perform an interactive login from a non TTY device
aws configureの登録がされてないからです。
% aws configure listで(not set)登録されてないことがわかります。
configureの設定をしなければいけない 設定するもの
AWS Access Key AWS
Secret Access Key
Default region name
Default output format
-----------
AWS Access Key IDとAWS Secret Access Keyの作成方法
https://console.aws.amazon.com/iamv2/home#/home
Default region nameはどこでも構いません。
東京の場合 ap-northeast-1
Default output formatはjsonで構いません。
json
参考
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-region
-----------
登録するコマンド % aws configure 登録後(1)を実行します。
---
n error occurred (AccessDeniedException) when calling the GetAuthorizationToken operation: User: arn:aws:iam::526983118746:user/meigen_user is not authorized to perform: ecr:GetAuthorizationToken on resource: * because no identity-based policy allows the ecr:GetAuthorizationToken action
上記エラーが出た場合
アクセス権限がうまくいってないです。
AWSAppRunnerServicePolicyForECRAccess
へのアクセス許可を追加してください。
AmazonEC2ContainerRegistryFullAccess
AmazonEC2ContainerServiceFullAccess
---
Login Succeededで完了
Dockerイメージの構築
docker build -t リポジトリ名 .
docker tag リポジトリ名 :latest 000000.dkr.ecr.us-east-1.amazonaws.com/name_ecr:latest
docker push 000000.dkr.ecr.us-east-1.amazonaws.com/name_ecr:latest
docker push してもeofでエラーも何も出ずにpublishできない場合
「AmazonEC2ContainerServiceFullAccess」の権限がないためです。
参考
https://zenn.dev/hibriiiiidge/books/49ee4063b10cec1df1a2/viewer/710b27