LINEで送る
Pocket

CircleCI初心者です!!

今回独自コンテナで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か!?
今度からCIおじさんだな。

LINEで送る
Pocket

カテゴリー: AWSCircleCIDocker

adachin

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

0件のコメント

コメントを残す

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