CodePipeline の構成は以下のようになっています。
ステージ | プロバイダ |
---|---|
Source | CodeStar SourceConnection |
Build | CodeBuild |
Deploy | ECS |
アーティファクトを格納するための S3 バケットを用意し、各ステージ用にパスを分けています。
CodeBuild の成果物はコンテナイメージなので ECR に格納し、ECS からアクセスさせます。
Terraform は version 1.0.5、AWS Provider は version 3.58.0 を使用しました。
terraform init
terraform apply
terraform.tfvars が設定ファイルです。
変数 | 目的 |
---|---|
artifact_bucket_name | アーティファクト用 S3 バケット名 |
service_name | ECS のサービス名 |
repository | CodePipeline の対象 GitHub レポジトリ |
branch | GitHub レポジトリの対象ブランチ |
Source ステージについてのみQiita 記事を書きました。
Dockerfile では Docker Hub の nginx イメージを使用していますが、CodeBuild だと匿名ユーザによる Docker Hub のダウンロード制限に引っかかる事があります。