😺

CircleCIでimageのpush先をGCRからArtifactRegistryに移行する

2024/04/10に公開

はじめに

GCRの廃止に伴うArtifactRegistry移行のメモです
移行の方法としては以下の2種類があります
(今回はGARでのpush先を階層化するので↓の2でやります)

  1. gcr.io ドメインをサポートするリポジトリに移行→こちらはARの全ての機能が使えません
  2. 標準リポジトリに移行

執筆時点では廃止のスケジュールは以下になっています(2024/04)

Container Registry は非推奨で、提供終了となります。2024 年 5 月 15 日以降、Artifact Registry は、Container Registry の使用歴がないプロジェクトで gcr.io ドメインのイメージをホストします。2025 年 3 月 18 日以降、Container Registry はご利用いただけなくなります。

正確なスケジュールは以下のリリースノート参照して下さい
https://cloud.google.com/container-registry/docs/release-notes?hl=ja

関連資料です
https://cloud.google.com/artifact-registry/docs/transition/setup-gcr-repo?hl=ja
https://cloud.google.com/artifact-registry/docs/transition/setup-repo?hl=ja

以下の作業などやっておきます

  • 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-authregistry-urlの記載が必要になります
→詳細は下記ドキュメントからコマンドのShow Command Sourceを確認
→イメージのpushを行うためのGARへの認証を構成しています

なお、プロジェクトIDは環境変数GOOGLE_PROJECT_IDで設定しています

https://circleci.com/developer/ja/orbs/orb/circleci/gcp-gcr#commands

Discussion