Pocket

今回独自コンテナでCI回せないのか(ECR)と思いきや、
CircleCI 2.0で実現できたので今回試してみました。


■AWS EC2 Container Registry (ECR) Support

https://circleci.com/blog/aws-ecr-auth-support/

CircleCIのDeveloperである Ricardo N Felicianoさんは以下のように答えています。
(どう見てもラッパー)

TL:DR; CircleCI 2.0 now supports authenticating to AWS EC2 Container Registry (ECR) straight from the Docker executor. This means you can use private Docker images from ECR as your build image. View docs.

CircleCI 2.0 brought native Docker support. A project could be built on 2.0 with a public Docker image as the build environment. Crafting a lightweight CI environment customized to your project’s exact needs, and which could be snapshotted to be used over and over again, became commonplace. Users enjoyed having this ability but said they wanted support for private images as well. Not long after, the auth key was introduced to support logging into a Docker registry to pull a private image as your build environment:

(訳)

AWS EC2 Container Registry(ECR)への認証をサポートします。ECRのプライベートDockerイメージをビルドイメージとして使用できます。

CircleCI 2.0はネイティブのDockerサポートしました。ビルド環境として公開されたDockerイメージを使用して、2.0でプロジェクトを構築することができます。プロジェクトの正確なニーズに合わせてカスタマイズされた軽量CI環境を作り、繰り返し使用できるようにスナップショットを作成できるようになりました。ユーザーはこの能力を享受しましたが、プライベート画像のサポートも望んでいました。その後、Dockerレジストリにログインしてプライベートイメージをビルド環境としてpullするための認証キーが導入されました。

とりあえずやってみよう。


■IAM

既存のIAMユーザを使い回ししています。権限はAdministrator。
(AmazonEC2ContainerRegistryFullAccessのみが良き)


■ECR/Terraform

・ecr.tf

ECRはTerraformで管理しているので追加してApply!


■Dockerfileで作ったイメージをECRにpushする

ECRにadachin-docker:latestがあればOK!!


■Setting CircleCI(Environment Variables)

INSIGHTS>リポジトリ名(歯車マーク)>Environment Variables

ここで先程のIAMユーザのクレデンシャルをCircleCIの環境変数にぶち込みます。

・AWS_ACCESS_KEY_ID
・AWS_ACCOUNT_ID 
・AWS_SECRET_ACCESS_KEY


■CircleCI/config.toml

imageの部分をECRのURLにして、aws_authを使ってクレデンシャルの部分を上記の変数に指定するだけです。

いざbuild!!


■CircleCI build


■まとめ

CircleCIなんでもできる!!

しかし毎回イメージ変更あったら手直ししてpushするという作業が発生するので、これもCircleCIかな。

Pocket

カテゴリー: AWSCircleCIDocker

adachin

1989年生まれのSRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWS/Azureでのインフラ構築、Docker開発環境の提供、Kubernetes保守、インフラコード化、新技術の検証、リファクタリング、セキュリティ強化などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTAで未経験者にインフラのコーチング/コミュニティの運用を実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください