ECRのメニューを開く
プッシュコマンドの表示を押す
必要なコマンドがずらっと書いてある。イメージ名がひどいのはご愛嬌。
一番上から打っていく。
awsのcredentialsを複数設定している人はAWSプロファイルを適切に指定してあげないといけない。~/.aws/credentials
の中身参照。
自分の場合はrunteqというプロファイル名に設定してクレデンシャル情報を使用するのでAWS_PROFILE=runteq
を先頭につけた。
$ AWS_PROFILE=runteq aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin 321899771753.dkr.ecr.ap-northeast-1.amazonaws.com
Login Succeeded
→ ログイン成功したとのメッセージが出る。
次にビルドが必要ならビルドする。もうイメージがあるなら不要。
docker build -t runteq-ruby26-3-4-5 .
次にタグをつける
$ AWS_PROFILE=runteq docker tag runteq-ruby26-3-4-5:latest 321899771753.dkr.ecr.ap-northeast-1.amazonaws.com/runteq-ruby26-3-4-5:latest
プッシュする
$ docker push 321899771753.dkr.ecr.ap-northeast-1.amazonaws.com/runteq-ruby26-3-4-5:latest
パーミッションを変える
「ポリシーJSONの編集」から以下を入力。
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "CodeBuild",
"Effect": "Allow",
"Principal": {
"Service": "codebuild.amazonaws.com"
},
"Action": [
"ecr:BatchCheckLayerAvailability",
"ecr:BatchGetImage",
"ecr:GetDownloadUrlForLayer"
]
}
]
}
こんな感じ。
以上!!