🌸

regctlでさくらのクラウドのコンテナレジストリの情報を取得する

2025/03/13に公開

さくらのクラウドのAppRunを使う場合に利用することになるさくらのクラウドのコンテナレジストリについてのTIPSです。

この記事ではregctlを用いてコンテナレジストリの情報を参照してみます。

準備

コンテナレジストリの作成

マニュアルなどを参考にコントロールパネル or Terraformなどからコンテナレジストリを作成しておきます。
この記事ではTerraformから作成します。

参考: Terraformドキュメント(コンテナレジストリ)

terraform {
  required_providers {
    sakuracloud = {
      source = "sacloud/sakuracloud"
      version = "2.26.1"
    }
  }
}

resource "sakuracloud_container_registry" "foobar" {
  name            = "regctl-example"
  subdomain_label = "example" # 変更してください

  access_level    = "readwrite" 
  user {
      name       = "example1" # 変更してください
      password   = "パスワード" # 変更してください
      permission = "all"
  }
}

output "container_registry_fqdn" {
    value = sakuracloud_container_registry.foobar.fqdn
}

applyするとコンテナレジストリのFQDNが表示されるのでメモしておきます。
私の手元だと以下のようになりました。

$ terraform-v1.11.2 apply
(中略)
Outputs:

container_registry_fqdn = "regclient-example.sakuracr.jp"

この記事の以降ではここで表示されたFQDNを${レジストリ}と表現しますので適宜読み替えてください。

イメージのpush

コンテナレジストリにイメージをpushしておきます。
さくらのクラウドのマニュアルを参照しつつpushしておきます。
参考: https://manual.sakura.ad.jp/cloud/appliance/container-registry/index.html#push

# pushするイメージの準備
$ docker pull alpine:latest
$ docker tag alpine:latest ${レジストリ}/example:latest

# コンテナレジストリにログイン
$ docker login ${レジストリ}
Username: [ユーザ名]
Password: [パスワード]

# イメージのpush
$ docker push ${レジストリ}/example:latest

regctlのインストール

ドキュメント: https://regclient.org/install/

GitHub Releasesの最新のリリースページからダウンロードします。
linux/amd64の場合は以下のコマンドでインストールします。

$ curl -L https://github.com/regclient/regclient/releases/latest/download/regctl-linux-amd64 >regctl
$ chmod 755 regctl

dockerイメージも用意されてるようなので詳細はドキュメントを参照してください。

regctlでログイン

まずはregctlで対象のレジストリにログインします。
regctl registry login ${レジストリ}コマンドを用います。

$ regctl registry login ${レジストリ}
Enter Username: (入力)
Enter Password: (入力)

あとはregctlで情報を参照できるはずです。

regctlを使ってみる

リポジトリ一覧の参照

$ regctl repo ls ${レジストリ}
example

タグ一覧の参照

$ regctl tag ls ${レジストリ}/example # exampleの部分はリポジトリ一覧で取得したものに適宜置き換え
latest

イメージの詳細を参照(inspect)

$ regctl image inspect ${レジストリ}/example:latest # exampleやlatestの部分は適宜置き換え
{
  "architecture": "arm64",
  "config": {
    "Env": [
      "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
    ],
    "Cmd": [
      "/bin/sh"
    ],
    "WorkingDir": "/"
  },
  (中略)
}

参考にした情報/サイト

Discussion