LoginSignup
2
0

More than 1 year has passed since last update.

CircleCI 公式のデプロイ用 Docker イメージ cimg/deploy

Last updated at Posted at 2023-02-06

CircleCI でカスタマーサクセスをしている鈴木です。椎間板ヘルニアに悩んでいます。一日1万2000歩を超えると腰の痛みが足に現れるので、Fitbitを見なくても大体の歩数がわかるようになってきました。

CircleCI が用意している CircleCI のジョブの実行環境で利用する Docker イメージをコンビニエンスイメージと呼んでいます。コンビニエンスイメージは各言語やフレームワークごとに CI/CD で必要なツールやパッケージがインストールされています。現在、Docker Hub のcimg/ に20種類ほどのイメージを確認できます。

本記事では比較的最近1公開された cimg/deploy というコンビニエンスイメージと、それをベースにした主要クラウドサービス別のイメージを紹介します。

cimg/deploy は名前からも想像できるように継続的デリバリーやデプロイでの利用を念頭においていて、kubectl や terraform などがインストールされています。さらに AWS CLI が必要であれば、cimg/deploy をベースにした cimg/aws が、gcloud CLI が必要であれば cimg/gcp が用意されています。

例えば、AWS CLIを使いたい場合、これまでのベストプラクティスはCircleCIが用意している aws-cli Orbを利用することでした。.circleci/config.yml には以下のように記述します。

version: '2.1'
orbs:
  aws-cli: circleci/aws-cli@3.1.4
  
# 省略

jobs:
  install_cli:
    executor:
      name: cimg/base:2023.01
    steps:
      - aws-cli/install

Orbを呼び出す代わりに、executor に cimg/aws を指定する記述は以下です。

version: '2.1'

# 省略

jobs:
  install_cli:
    executor:
      name: cimg/aws:2022.11
    steps:
      - aws-cli/install

コード量としては大きな差がありませんが、cimg/aws を使うほうがインストールの時間を省くことができます。
と書いてみたものの、AWS CLIのインストールぐらいでは時間短縮はほとんど見られませんでした。(むしろ cimg/aws イメージの pull に時間が。。)
また、aws-cli Orb のほうが、AWSのクレデンシャルを設定する setup コマンドもあるので Orb のほうが実用的かもしれません。Orb 便利ですね。

さて、気を取り直して cimg/deploy イメージにどんなツールがインストールされているのか確認したいと思います。このイメージを作成している Dockerfile は CircleCI のパブリックな GitHub リポジトリの CircleCI-Public/cimg-deploy で確認できます。

cimg/deploy イメージはほぼ毎月更新されていくとのことで、cimg/deploy:2023.01 のように年月でタグが付けられています。リポジトリ上ではこの年月別にディレクトリが分けられています。

2023.01 ディレクトリを見てみると Dockerfile がありました。2

Dockerfile の中身を確認すると、
python3-pip, rsync, ansible, kubectl, nfpm, packer, salt-master, terraform がインストールされていることがわかりました。

これらのツールのインストールに時間がかかっている場合はお試しください。

  1. 2022年4月のベータ公開を経て、2022年11月に正式公開されました。リリース時のCircleCIのアナウンスはこちらです。

  2. node ディレクトリも見えますが、cimg/deploy イメージは cimg/deploy:2023.01-node といったタグもあり、そちらには Node.js と yarn がインストールされています。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0