次世代 CircleCI イメージへの移行
このページの内容
概要
2020 年より、CircleCI では CircleCI イメージの次世代版の展開を開始しました。 これらのイメージは、 CircleCI 2.0 の発表時にリリースされた従来の CircleCI イメージに代わるものです。 次世代版は CI/CD 環境に合わせてゼロから設計されており、 従来よりもスピードと効率、そしてなによりも信頼性が大きく向上しています。 次世代 CircleCI イメージの特徴について詳しくは、 こちらのブログ記事をご覧ください。 従来イメージが今後廃止されることに伴い、ここでは新しいイメージへの移行プロセスについて説明します。
従来のイメージから次世代版に移行するには、名前空間を変更する必要があります。 イメージの Docker 名前空間について、従来のものはすべて circleci
でしたが、次世代イメージでは cimg
に変わります。 たとえば、従来の Ruby および Python のイメージを次世代版に移行するには、それぞれ次のように変更します。
- circleci/ruby:2.7.4
+ cimg/ruby:2.7.4
- circleci/python:3.8.4
+ cimg/python:3.8.4
変更点
イメージの廃止
既存のイメージについて、今後いくつかの変更が行われる予定です。 以下のイメージは廃止され、次世代イメージへの置き換えは行われません。
buildpack-deps
JRuby
DynamoDB
buildpack-deps
イメージを現在使用している場合は、新しい CircleCI ベース イメージ cimg/base
に移行することをお勧めします。 他の 2 つのイメージについては、ベース イメージにソフトウェアをご自身でインストールするか、サードパーティのイメージを使用してください。
また、以下のイメージの名称が変更されます。
- Go イメージ:
golang
からgo
に変更
従来版と次世代版のイメージの変更点は下表のとおりです。
従来版のイメージ | 次世代版のイメージ |
---|---|
circleci/buildpack-deps | cimg/base |
circleci/jruby | 対応イメージなし |
circleci/dynamodb | 対応イメージなし |
circleci/golang | cimg/go |
ブラウザーテスト
従来のイメージでは、ブラウザーテストを行う場合、利用可能なバリアントタグが 4 種類存在していました。 たとえば、Python v3.7.0 イメージでブラウザー テストを行う場合、circleci/python:3.7.0-browsers という Docker イメージを使用していたかも知れません。 今後、これら 4 つのタグは、 CircleCI Browser Tools Orb との併用を前提とした単一のタグに統合されます。
従来のバリアントタグ | 次世代のバリアントタグ |
---|---|
-browsers | -browsers + browser orb tools |
-browsers-legacy | |
-node-browsers | |
-node-browsers-legacy |
ブラウザーテスト用の新しいバリアントタグには、Node.js およびブラウザーテスト用の一般的なユーティリティ (Selenium など) が含まれていますが、実際のブラウザーは含まれていません。 タグの統合に伴い、ブラウザーはプリインストールされなくなります。 代わりに、Google Chrome や Firefox などのブラウザー、および Chromedriver や Gecko などのドライバーは、browsers-tools
Orb でインストールします。 これにより、CircleCI から提供されるツールに縛られることなく、ビルドで必要なブラウザーのバージョンを柔軟に組み合わせることができます。 この Orb の使用例については、 こちらを参照してください。
ベース OS の Ubuntu への統一
従来のイメージでは、バリアントタグによってベースオペレーティングシステム (OS) が異なっていました。 たとえば、Debian と Ubuntu のバージョンのイメージがある一方、別のイメージでは異なるベース OS が提供されていました。 こうした状態を解消するため、 次世代の CircleCI イメージはすべて、Ubuntu の最新 LTS リリースがベース OS となります。
ベースイメージでは、少なくとも 2 つ以上の LTS リリースと、EOL 前の標準リリースがサポートされます。
トラブルシューティング
次世代イメージへの移行では、ソフトウェア関連の問題が発生することがあります。 よくある問題を以下に示します。
- 使用していたライブラリのバージョンが変わる
- apt パッケージがプリインストールされなくなる。 この場合は、次のコマンドでパッケージをインストールしてください。
sudo apt-get update && sudo apt-get install -y <the-package>
各イメージには、構築元となる GitHub リポジトリが用意されており、 こちらから参照可能です。 これらのリポジトリでは、各イメージの詳細や構成内容を確認できるほか、GitHub 上で Issue の報告やプルリクエストの投稿を行えます。 イメージに関して、特に移行に関する問題がある場合は、GitHub 上で Issue をオープンし、問題を報告してください。 サポート チケットを作成する、または CircleCI Discuss に投稿していただくことも可能です。