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

あだちん

1989年生まれ。 ランサーズ/SRE。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わり、他社インフラレスポンス改善、ランサーズでの副業、ansibleでのインフラコード化を推進し、未経験によるエンジニアのMENTAなども実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/広報/VulsRepo init file,chatwork通知のコントリビュータでもある。現在はDocker開発環境の提供,AWSで新サービスのインフラ構築,PHPバージョンアップ,分析基盤を担当しておりDigdag,embulk,BigQueryを使いこなし中。

コメントを残す

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