■ はじめに
https://dk521123.hatenablog.com/entry/2020/05/22/165711
の続き。 Amazon ECR を学んだので、今回は、当初の目標である CodeBuild で、カスタム Docker ビルドイメージを 使用する方法について、学ぶ。
■ 導入前に
標準で用意されているDocker イメージの確認
まず、カスタム Docker ビルドイメージを導入する前に 標準で用意されているDocker イメージで賄えないかどうかを 調査しておいた方がいい。 以下の公式サイトに記載されている。
公式サイト:CodeBuild に用意されている Docker イメージ
https://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/build-env-ref-available.html
■ 手順
【1】ECRの画面からCodeBuildのロールに対して、許可を行う 【2】作成したDockerイメージを作成し、ECRにPushしておく 【3】カスタムイメージを適用する 【4】CodeBuildを実行し動作確認
【1】ECRの画面からCodeBuildのロールに対して、許可を行う
# これにめっちゃはまった。。。 # はじめ、IAMのページからやると勘違いしてた。あと★部分。 1)AWSマネージメントコンソール「Elastic Container Registry」で 対象のリポジトリを選択し、左ペインの[Permissions]を選択する 2)ECRのPermissonの設定を行う ・Statement name:任意の文字列(今回は「hello-world-ecr-permisson」) ・Effect:Allow or Deny(今回は「Alllow」) ・Principal:適切に設定(今回は「Everyone(*)」にチェック ) ⇒ ★『「Everyone(*)」にチェック 』をしなくてはまった★ ・IAM entities:CodeBuildの IAM ロール ・Actions:適切に設定 今回は、以下の公式サイトを参考に以下のActionを登録 A)ecr:GetDownloadUrlForLayer B)ecr:BatchGetImage C)ecr:BatchCheckLayerAvailability
https://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/sample-ecr.html
【2】作成したDockerイメージを作成し、ECRにPushしておく
以下の関連記事を参照のこと
https://dk521123.hatenablog.com/entry/2020/05/22/165711
【3】カスタムイメージを適用する
CodeBuildのプロジェクトを新規作成しても適用できるし、 既にある作成してあるCodeBuildのプロジェクトから変更も可能。 [Environment]を選択し、以下を行う ・New enviroment Image:Custom Image ・Enviroment type:Custom ImageのOSタイプ(今回は、「Linux」) ・Image registry:Amazon ECR ・ECR account:My ECR account ・Amazon ECR repository:自分で作成したECRのリポジトリ(今回は「hello-world-ecr」)
【4】CodeBuildを実行し動作確認
CodeBuildの「Start Build」でBuildできるかどうか確認する
補足:buildspec.yml の修正
https://dk521123.hatenablog.com/entry/2020/05/22/165711
で、Python3.6に変更したので、buildspec.yaml の「runtime-versions」 も変更したら、エラーになってしまった。 ⇒ 対処策として、「install:」の区間を丸ごと削除した
エラーが発生したbuildspec.yml
version: 0.2 phases: install: # ← 結局、この句から全て削除して対応 runtime-versions: # Python3.6を使っていて「3.6」にしたらエラー python: 3.6
参考文献
https://qiita.com/akikinyan/items/2ff72cf1129b66304616
公式サイト
https://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/sample-docker.html
https://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/sample-docker-custom-image.html
関連記事
CodeBuild ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/01/21/221122
CodeBuildに flake8 を組み込む
https://dk521123.hatenablog.com/entry/2020/02/17/220545
CodeBuild で パラメータストア / Secrets Manager を使う
https://dk521123.hatenablog.com/entry/2020/02/18/230358
CodeBuild で Python のバージョンを切り替える
https://dk521123.hatenablog.com/entry/2020/02/19/230909
Amazon ECR ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/05/22/165711
Amazon ECR でのトラブルシューティング
https://dk521123.hatenablog.com/entry/2020/05/24/000000