Gitリポジトリ
注記
CodePipelineはAWS CodeConnectionsを通じてGitHub、GitLab、およびBitbucketをGitベースのソースとしてサポートしています。実際のアプリケーションでは、これらのソースを使用するべきです。しかし、このラボでは簡単にするためにS3をソースリポジトリとして使用します。
このモジュールではS3をソースアクションとして使用し、git-remote-s3ライブラリを使用して、Web IDE内のgitを通じてそのバケットにデータを取り込みます。
リポジトリは以下のもので構成されます:
- カスタムUIコンテナイメージを作成するためのDockerfile
- コンポーネントをデプロイするためのHelmチャート
- デプロイされるイメージをオーバーライドする
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_URLとIMAGE_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