😺
CircleCIでimageのpush先をGCRからArtifactRegistryに移行する
はじめに
GCRの廃止に伴うArtifactRegistry移行のメモです
移行の方法としては以下の2種類があります
(今回はGARでのpush先を階層化するので↓の2でやります)
- gcr.io ドメインをサポートするリポジトリに移行→こちらはARの全ての機能が使えません
- 標準リポジトリに移行
執筆時点では廃止のスケジュールは以下になっています(2024/04)
Container Registry は非推奨で、提供終了となります。2024 年 5 月 15 日以降、Artifact Registry は、Container Registry の使用歴がないプロジェクトで gcr.io ドメインのイメージをホストします。2025 年 3 月 18 日以降、Container Registry はご利用いただけなくなります。
正確なスケジュールは以下のリリースノート参照して下さい
関連資料です
以下の作業などやっておきます
- GARのリポジトリ作成
- IAM権限付与
- 既存イメージのコピー
CircleCI設定変更
imageのpushはGCR用のcircleci/gcp-gcr
がGARにも対応しています
(2024/04時点では0.16.2で動作しています)
orbs:
gcp-gcr: circleci/gcp-gcr@0.16.2
jobs:
build:
:
steps:
:
- gcp-gcr/gcr-auth
- gcp-gcr/push-image:
image: image_name
tag: "$CIRCLE_SHA1",latest
registry-url: xxx.gcr.io
↓書き換えます
orbs:
gcp-gcr: circleci/gcp-gcr@0.16.2
jobs:
build:
:
steps:
:
- gcp-gcr/gcr-auth:
registry-url: xxx-docker.pkg.dev
- gcp-gcr/push-image:
image: path/image_name
tag: ${CIRCLE_SHA1},latest
registry-url: xxx-docker.pkg.dev
gcr-auth
でregistry-url
の記載が必要になります
→詳細は下記ドキュメントからコマンドのShow Command Source
を確認
→イメージのpushを行うためのGARへの認証を構成しています
なお、プロジェクトIDは環境変数GOOGLE_PROJECT_ID
で設定しています
Discussion