開発1GのOです。 ご期待していただいた人がいたかどうかはわかりませんが、AWSでのdocker環境構築第2回目です。 今回は前回解説したCodeCommitについてはpushくらいはできるという前提で進めるのでわからないという方は 前回の記事を参照してください。
AWSでのdocker環境構築を行う方法 その1 CodeCommit編またdockerのイメージをビルドするのでdockerについても多少の理解が必要です。 これもまたわからないという方は以下の記事を参考にしてください。
【Windows向け】Docker、DockerComposeを利用して環境構築をする方法今回やりたいこと
今回はCodeCommitにアップされているDockerfileをビルドしてイメージをビルドします。 ビルドしたイメージはECR(Amazon Elastic Container Registry)に保存します。 ECRについては今回深くは触れませんが、dockerイメージ用のgitリポジトリとでも思っておいてください。
CodeBuildとは何か
CodeCommit/github/s3の好きなファイルをAWS上でビルドしてくれるサービスです。 今回はdockerイメージのビルドを行いますが、C++やjavaのビルドもできます。 またコマンドも実行できるのでテストもできるようです。
・CodeBuildを利用する前の準備
それでは本題のCodeBuildの使い方についてです。 まずは事前準備としてCodeCommitにDocker用のリポジトリを作成して、ビルドするDockerfileをルートフォルダにpushしてください。 今回はビルドをテストしたいだけなので以下のようなファイルを用意しました。
===================
FROM php:fpm
WORKDIR /src
===================
そしてECRにリポジトリを作成しておいてください。 こちらは特に説明するほど難しいことではないと思います。
・buildspec.ymlの作成
buildspec.ymlはビルドのコマンドを buildspec.ymlを作成してCodeCommitのリポジトリのルートにpushしてください。 今回は以下のようなファイルを用意しました。・CodeBuildプロジェクト作成
次はいよいよCodeBuildの設定を行います。
AWSサービス一覧からCodeBuildを選択して開始してください。
ビルドプロジェクトの一覧が表示されたら「ビルドプロジェクトを作成する」を選択します。

まずはプロジェクトの設定です。
任意のプロジェクト名と説明を入力してください。
ビルドバッジは公式の説明を読んでもどう利用したらよいのかわからなかったのでひとまず無効にしてあります。
※ビルドバッジについて詳しく知っている人がいればむしろ教えてほしいです…

次はソースの設定です。
ここではビルド元のファイルの場所を定義します。
今回はCodeCommitのファイルをもとにビルドするためソースプロバイダは「AWS CodeCommit」を選択します。
リポジトリはDockerfileをpushしたリポジトリを選択してください。
対象となるブランチはビルドを実行するときに選択できます。
そしてルートにファイルを配置したので特に追加設定は不要ですが、Git のクローンの深さは「1」としています。

さらに次は環境の設定です。
Dockerのビルドを行うように以下の通り設定します。
サービスロールについては既存のサービスロールが選択できるようならそちらを使っても大丈夫です。

そしてここでは追加設定に環境変数を定義します。 各項目の説明は以下の通りです
- AWS_DEFAULT_REGION 利用するAWSのリージョンコード
- AWS_ACCOUNT_ID AWSのID
- IMAGE_REPO_NAME ビルドしたイメージの保存先 ECRのリポジトリ名を指定
- IMAGE_TAG 保存したイメージの識別タグ
今回は以下の通りに設定してみました。

最後にBuildspecとアーティファクトの設定です。 といっても今回はデフォルトのままで問題ないので特に設定はしません。

全ての設定が完了したら「ビルドプロジェクトの作成」を選択します。
問題がなければビルドプロジェクトが作成されます。
・ビルドの実行
プロジェクトが作成されると以下のようなページになりますので「ビルドの開始」

「ビルドの開始」を選択するとビルドの開始画面になるので ビルド設定とソースの設定を行います。 ビルド設定にはプロジェクトの設定とタイムアウト時間を設定してください。 選択したプロジェクトが設定されているはずなので今回はデフォルトのままです。

ソースの設定では参照するリポジトリのブランチを選択してください。 今回はブランチはmasterしかないのでここもデフォルトのままです。

環境変数の上書きについては必要があれば上書きできますがここもデフォルトのままで問題ありません。
「ビルドの開始」を選択すればビルドが実行されます。
成功したらECRのリポジトリを確認してみましょう。
以下のように設定したタグでイメージが格納されているはずです。

おわりに
今回はCodeBuildを利用したdockerイメージのビルドを行いましたがいかがだったでしょうか。 次はECRからDockerイメージをpullしてくる方法について触れていきたいと思います。 次回もお付き合いいただければ幸いです。