結論
CodeBuild の Amazon ECR サンプル に忠実に従う
概要
CodeBuildを使ってテストを自動化したい
→ 毎回イチからイメージをビルドしてテストを走らせると時間がかかるし、お金も勿体無いよね
→ イメージの中身が変更された時だけECRにあげて、基本的にテストを走らせる時はECRに上がっているイメージを使おう
となりました。
そして、CodeBuild から ECR に push する分にはビルドプロジェクトで作成したポリシーに ECR への権限を付与したら出来たのですが、ECR のイメージをビルドプロジェクトの環境イメージに指定した場合はそれではうまく出来ませんでした。
のように「BUILD_CONTAINER_UNABLE_TO_PULL_IMAGE」が出てしまい、少し時間を使ってしまったので備忘録。
解決策
ECRをビルドプロジェクトの環境イメージに指定する場合は、ECRの画面からCodeBuildのアクセス許可をしてあげる必要がありました。
CodeBuild の Amazon ECR サンプル の通りではありますが、
ポリシーJSONの編集
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CodeBuildAccess",
"Effect": "Allow",
"Principal": {
"Service": "codebuild.amazonaws.com"
},
"Action": [
"ecr:BatchCheckLayerAvailability",
"ecr:BatchGetImage",
"ecr:GetDownloadUrlForLayer"
]
}
]
}
これできっとできるようになるhazu☆