CircleCI では、さまざまなプログラミング言語といくつかのデータベース用に、コンビニエンス イメージと呼ばれる一連の Docker イメージをご用意しています。これらのイメージは、継続的インテグレーション (CI)環境で効果的に動作するように作られており、簡単で便利なたたき台としてユーザーに活用されています。
しかし、第 1 世代のコンビニエンス イメージを設計したのは約 4 年前です。それ以降、CircleCI は効率的なイメージの設計について多くのことを学び、構成を再利用できるパッケージ機能「Orbs」もリリース しました。また、Docker ツール自体も成長し、より洗練されたものになりました。
現在の 14 個の Docker イメージは、CI 用には設計されていない、14 種類の個別のアップストリーム Docker ライブラリ イメージをベースとしています。このことが、私たちとユーザーにとっては、互換性を損なう変更が突然発生する原因となっており、イメージの肥大化、アーキテクチャの全体的な非効率化を引き起こしています。そこで、より良いシステムを設計することとなりました。
次世代コンビニエンス イメージのリリース
新しいコンビニエンス イメージは、CI、効率性、確定的動作を念頭に置いてゼロから設計しました。注目ポイントを紹介しましょう。
-
スピンアップ時間の短縮 – Docker 的な言い方をすれば、次世代イメージは概してレイヤーがより少なく、より小さくなっています。これらの新しいイメージを使用すると、ビルド開始時にイメージがすばやくダウンロードされると共に、イメージが既にホストにキャッシュされている可能性が高くなります。
-
信頼性と安定性の向上 – 従来のイメージは、アップストリームからの変更によってほぼ毎日再ビルドされるため、テストが間に合わないこともあります。そのため、互換性の損なわれる変更が頻発してしまい、安定した確定的なビルドに最適な環境とは言えなくなっています。次世代イメージは、セキュリティと致命的なバグについてのみ再ビルドされるため、より安定した確定的なイメージとなります。
次世代イメージが利用可能に
次世代コンビニエンス イメージの最初の 2 つ、CircleCI Base イメージと次世代 CircleCI Go (Golang) イメージ。
CircleCI Base イメージ
image: cimg/base:2020.01
これは必要最低限のものをインストールするように設計された、まったく新しい Ubuntu ベースのイメージです。今後数週間でリリースする予定の次世代コンビニエンス イメージはすべてこれがベースとなります。
最適な用途
汎用的なイメージを CircleCI で実行したり、Orbs で使用したり、独自のカスタム Docker イメージのベースとして利用したりする必要がある場合に、このイメージをお使いください。
入手場所
イメージは Docker Hub、ソース コードとドキュメントは GitHub で入手できます。次世代のConvenience Imageへの移行方法に関してさらに詳しく。
次世代 CircleCI Go イメージ
image: cimg/go:1.13
これは従来の CircleCI Go イメージ (circleci/golang
) の直系の後継となるものです。より詳細なドキュメントが提供され、動作はさらに確定的になり、これを基に非常に効率的なインフラストラクチャが構築できます。
最適な用途
従来の Go イメージをご利用の場合は、このイメージをお使いください。このイメージには Gophers に必要なツールがプリインストールされているため、Go ベースのプロジェクトをこれから CircleCI で始める場合でもすぐに作業を進められます。
入手場所
イメージは Docker Hub、ソース コードとドキュメントは GitHub で入手できます。
今後の予定
一般提供を開始したこの 2 つの新しいコンビニエンス イメージに続き、今後さらに多くのイメージを提供してまいります。パブリック ベータ版となっているイメージが複数あり、数週間のうちに一般提供となる予定です。ベータ版イメージを今すぐ入手するには、CircleCI Discuss にアクセスしてください。
追伸: すべてオープン ソースであり、ユーザーの皆様のために設計されています。皆様のご協力もお待ちしております。