メインコンテンツまでスキップ

Gitリポジトリ

注記

CodePipelineは、AWS CodeConnectionsを通じてGitHubやGitLab、Bitbucketなどのソースをサポートしています。実際のアプリケーションでは、これらのソースを使用するべきです。しかし、このラボでは簡単にするためにS3をソースリポジトリとして使用します。

このモジュールではS3をソースアクションとして使用し、git-remote-s3ライブラリを使用して、Web IDE内のgitを通じてそのバケットにデータを取り込みます。

リポジトリは以下のもので構成されます:

  1. カスタムUIコンテナイメージを作成するためのDockerfile
  2. コンポーネントをデプロイするためのHelmチャート
  3. デプロイされるイメージをオーバーライドするvalues.yamlファイル
.
├── chart/
| ├── templates/
| ├── Chart.yaml
│ └── values.yaml
|── values.yaml
└── Dockerfile

このラボで使用するDockerfileは意図的に簡略化されています:

~/environment/eks-workshop/modules/automation/continuousdelivery/codepipeline/repo/Dockerfile
FROM public.ecr.aws/aws-containers/retail-store-sample-ui:1.2.1

# This is an intentionally simplified Dockerfile for simplicity and build speed

リポジトリのルートにあるvalues.yamlファイルは、正しいコンテナイメージとタグを設定するだけの役割を持っています:

~/environment/eks-workshop/modules/automation/continuousdelivery/codepipeline/repo/values.yaml
image:
repository: $IMAGE_REPOSITORY
tag: $IMAGE_TAG

IMAGE_URLIMAGE_REPOSITORY環境変数は、後で見るようにパイプラインで設定されます。

まずはGitを設定しましょう:

~$git config --global user.email "you@eksworkshop.com"
~$git config --global user.name "Your Name"

次に、Gitリポジトリとして使用するディレクトリに各種ファイルをコピーします:

~$mkdir -p ~/environment/codepipeline/chart
~$git -C ~/environment/codepipeline init -b main
~$git -C ~/environment/codepipeline remote add \
origin s3+zip://${EKS_CLUSTER_NAME}-${AWS_ACCOUNT_ID}-retail-store-sample-ui/my-repo
~$cp -R ~/environment/eks-workshop/modules/automation/continuousdelivery/codepipeline/repo/* \
~/environment/codepipeline
~$helm pull oci://public.ecr.aws/aws-containers/retail-store-sample-ui-chart:1.2.1 \
-d /tmp
~$tar zxf /tmp/retail-store-sample-ui-chart-1.2.1.tgz \
-C ~/environment/codepipeline/chart --strip-components=1