Container Registryが2023年5月15日より非推奨化、2024年3月15日に廃止されるという発表がすでに出ています(Container Registry のサポート終了)。これに伴い、コンテナイメージをContainer Registryに保存していた場合にはArtifact Registryへ移行する必要があります。
移行自体は特段難しい話ではありませんが、移行先であるArtifact Registryとは何なのかという話と、移行の仕方、そして個人的に気にかけておくべきと思ったことをご紹介します。
公式の記述からかいつまんで言うと、以下の通りです(Artifact Registry の概要)
Artifact Registry は、パッケージと Docker コンテナ イメージを 1 か所で保管し管理できる場所として機能します。
Artifact Registry は Container Registry の機能を拡張したもので、Google Cloud に推奨されるコンテナ レジストリです。
「拡張」として主だったものとしては、Container Registryが名前の通り「コンテナ」のためのものでDocker リポジトリを管理Artifact Registryしていたのに対して、Artifact RegistryではJava,Node.js,Pythonなどのパッケージについても管理できる点です。
2023年8月15日現在でサポートされているのは以下の通りでした。
またセキュリティ面では、リポジトリごとに権限を付与できるようになりました。これにより、同一プロジェクト上で複数のアプリケーション用パッケージ/イメージを管理するとしても、それぞれに対して権限を細やかに管理できます。
「コンテナイメージを管理する」という点においてContainer Registryから変更はありませんので、これまでContainer Registryに配置していたイメージをそのままArtifact Registryに移せば問題ありません。
移行にあたって気を付けるべきは、イメージのパスです。
Artifact Registryに移行することでイメージのパスが変わってしまうので、Cloud RunやGKEなどで指定しているパスがある場所は忘れずに変更しましょう。
※パスを変えずにリダイレクトさせるようにも設定できますが、ここでは公式手順のみ記載して割愛します(gcr.io ドメインをサポートするリポジトリを設定する)
例
Container Regsistryasia.gcr.io/test-project/hello-image:latest
Artifact Registryasia-northeast1-docker.pkg.dev/test-project/repo-hello/hello-image:latest
手順としては以下の通りです。
$ gcloud auth configure-docker us-central1-docker.pkg.dev,asia-northeast1-docker.pkg.dev
denied: Permission "artifactregistry.repositories.uploadArtifacts" denied on resource "projects/test-project/locations/asia-northeast1/repositories/repo-hello" (or it may not exist)
Google Cloud、Google Workspaceに関する お問い合わせはこちら
XIMIX(サイミクス)は商標登録出願中です