Closed10
aws-cliでECRにpushする
aws-cliはdockerコンテナが公式により用意されている
docker run --rm -it amazon/aws-cli aws help
ECRに認証通した後にdocker pushするっぽい?
そして何かしらのIAMが必要?
アクセスキーはIAMから発行
~/.aws/credentials
[default]
// 中身は上のドキュメントのコピペ
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
~/.aws/config
~/.aws/config
[default]
region=us-west-2
output=json
AWSのIAMの画面でアクセスキーを発行しました。
ローカルのPCにウエフタツノファイルヲサクセイシマシタ
docker run --rm -it amazon/aws-cli awsする時にv設定して認証情報をコンテナに渡せるはず
参考: https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2-docker.html#cliv2-docker-share-files
docker run --rm -it -v ~/.aws:/root/.aws amazon/aws-cli command
docker run --rm -it -v ~/.aws:/root/.aws amazon/aws-cli ecr get-login-password
An error occurred (AccessDeniedException) when calling the GetAuthorizationToken operation
権限かと思いきや、
MFAしてるから普通には繋げないんだ。
トークンを発行する必要がある
発行した情報を名前付きプロファイルで.aws/credentialsとconfigに入れて[default], [mfa]みたいな。
aws-cliコマンド実行時に--profile mfaすれば通る
.aws/configにregion設定しているのに
docker run --rm -it -v ~/.aws:/root/.aws amazon/aws-cli ecr get-login-password --profile mfa
You must specify a region. You can also configure your region by running "aws configure"
うーん。
コマンドにregionをセットしたらいけた。
ローカルからECRへpushする
build
docker build -t aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app
// push先のECRのリポジトリURIを指定
ECRへログイン
(IAMのアクセスキーだったりcredentialsファイルの作成をすましておくこと)
docker run --rm -it -v ~/.aws:/root/.aws amazon/aws-cli ecr get-login-password --region ap-northeast-1 --profile mfa \
| docker login \
--username AWS \
--password-stdin <aws_account_id>.dkr.ecr.<region>.amazonaws.com
Login Succeededと表示されるとログイン成功
push
docker push aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app
このスクラップは2021/02/16にクローズされました