AWSでDockerを使ったサービスをどうこうしようとすると、
どこでビルドするの問題が生じる。
CICDのフローでどうやって組み込むかが課題になるよね。
今回はAWS CodeBuildでDocker Imageをビルドして
ECRにプッシュするための設定を書き溜め。
buildspec.ymlにdocker buildの手順を追加する
buildspec.ymlを下記のように作る。
version 0.2以降ではinstall時にruntime-versionsを指定しないとエラーになるので
書き忘れないようにね。今回の場合はdocker: 18を指定する。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  | 
						version: 0.2  phases:   install:     runtime-versions:       docker: 18   pre_build:     commands:       - echo Log in to Amazon ECR       - $(aws ecr get-login --no-include-email --region $AWS_DEFAULT_REGION)   build:     commands:       - echo Started on `date`       - echo Building the Docker image       - docker build -t mytempimage .       - docker tag mytempimage:$IMAGE_TAG $ImageRepository:$IMAGE_TAG       - echo Push the Docker image to AWS ECR       - docker push $ImageRepository:$IMAGE_TAG   post_build:     commands:       - echo Completed on `date`  | 
					
流れとしてはこんな感じ。
- ECRにログイン
 - 手元のDockerfileを使ってdocker buildを実行
 - ECR向けにtagを付与
 - ECRに作ったDockerImageをpushする
 
どのリポジトリにするかだったりは環境変数で指定できるから
ImageRepositoryだったりはご自由にどうぞ。
あとはこのbuildspec.ymlとDockerfileをzip化して
S3に配置すればいける。
runtime-versionの指定については公式をどうぞ。
https://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/build-env-ref-available.html
ECRへのRole設定とかは近いうちにまた記事にします。
じゃあね〜〜〜〜。
