AWS
docker
ECR
CodeBuild

AWS CodeBuildにおけるECR上Dockerイメージ利用時の注意点

TL;DR

  • AWScodebuildでのdockerイメージのビルド時、--cache-fromオプションでビルド時間短縮したい
  • 基本的なやりかたはこちらhttps://qiita.com/tiibun/items/f0045011c86efca254fc を参考にしてます
  • 個人的に一部詰まった箇所があったので、メモ(ECRの権限設定でした)
  • AWScodebuildのdockerバージョンは1.12.1

 ※2018/01/04追記。
コメントいただいたように、最近はcodebuildでDocker 17.09もサポートされているようになったみたいですね。

 ※2018/01/05追記。
サンプルのrailsプロジェクトをDocker 17.09でビルドしたら問題なく動作しました。
新しくcodebuildのPJ作成される方は、まずはDocker 17.09で動かしてみた方が良いですね。
(--cache-from利用した方が早く作成できるし、そのぶん利用料金も下がりますので)

ECRの権限設定

DockerイメージのECRプッシュ後、
codebuildにてビルド実行したところ、アクセス権がない旨エラーが発生。
codebuildのロールにもECRへのアクセスができるように設定していました。

結論からいうと、ECRにpushしたdockerイメージ自体にアクセス許可を与える必要がありました。

66f6868e-275a-f65e-0e5f-9eb9d2abfcbb.jpeg

アクセス許可を与える対象は自身のAWSアカウントではなく、
AWSリージョンのシステムアカウントになります。
参考リンク:
https://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/sample-ecr.html

ググっても意外と出てこなかったので、こちらにメモとして残しておきます。