CircleCIを使ってECRへイメージをpushする


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/[email protected]
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までできました。

ECRの画面でもタグが表示されています。

CircleCIの環境変数の指定方法に慣れておらず、若干つまづきましたが簡単ですね。ありがたい。