次世代 CircleCI イメージへの移行

1+ year ago1 min read
Last updated • Read time
クラウド
This document is applicable to CircleCI クラウド
Server v4.x
This document is applicable to CircleCI Server v4.x
Server v3.x
This document is applicable to CircleCI Server v3.x

概要

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-depscimg/base
circleci/jruby対応イメージなし
circleci/dynamodb対応イメージなし
circleci/golangcimg/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 に投稿していただくことも可能です。