Cloudformationを使ったFargateバッチのデプロイプロセスについて考えてみた、でやりきれなかったECRイメージへのpushをCircleCIを使って自動化してみます。
CircleCIではAWS ECRを扱うためのOrbが用意されているため、これを使うのが便利そうです。
https://circleci.com/orbs/registry/orb/circleci/aws-ecr
コードはこちら。
https://github.com/nyasba/python-batch-fargate
設定
以下のファイルをリポジトリに追加して、一度ビルドを実行します。
.circleci/config.yml
version: 2.1
orbs:
aws-ecr: circleci/aws-ecr@4.0.1
workflows:
build_and_push_image:
jobs:
- aws-ecr/build_and_push_image:
account-url: AWS_ECR_ACCOUNT_URL
aws-access-key-id: AWS_ACCESS_KEY_ID
aws-secret-access-key: AWS_SECRET_ACCESS_KEY
region: AWS_REGION
repo: batch
tag: circleci
CircleCIのJobの環境変数画面で4つ追加します
環境変数名 | 設定値 |
---|---|
AWS_ECR_ACCOUNT_URL | ECRのリポジトリURL 例: 1234567890.dkr.ecr.ap-northeast-1.amazonaws.com |
AWS_ACCESS_KEY_ID | アクセスキー |
AWS_SECRET_ACCESS_KEY | シークレット |
AWS_REGION | リージョン 例: ap-northeast-1 |
実行
Orbで設定されていた処理が進んで、ECRへのイメージpushまでできました。
CircleCIの環境変数の指定方法に慣れておらず、若干つまづきましたが簡単ですね。ありがたい。