1.3. コンテナーレジストリーへの認証
プライベートコンテナーレジストリーにイメージをプッシュするには、該当する名前空間に シークレット を作成し、それを ビルド カスタムリソース (CR) で参照する必要があります。
前提条件
- OpenShift Container Platform クラスターに Builds for Red Hat OpenShift Operator がインストールされている。
-
ocCLI がインストールされている。
手順
秘密オブジェクトを生成するには、次のコマンドを実行してください。$ oc --namespace <namespace> create secret docker-registry <container_registry_secret_name> \ --docker-server=<registry_host> \ --docker-username=<username> \ --docker-password=<password> \ --docker-email=<email_address>各項目の説明:
<namespace>- シークレットを作成する名前空間を指定します。
< コンテナーレジストリーシークレット名 >-
コンテナーレジストリー認証情報を格納する
シークレットリソースの名前を指定します。 < レジストリーホスト >-
レジストリー URL を
https://<registry_server>/<registry_host> の形式で指定します。 <username>- レジストリーユーザー名を指定します。
<password>- コンテナーレジストリーのパスワードまたはアクセストークンを指定します。
< メールアドレス >- コンテナーレジストリー認証情報に関連付けられたメールアドレスを指定します。
次のコマンドを実行して、シークレットにアノテーションを付けます。
$ oc --namespace <namespace> annotate secrets <container_registry_secret_name> build.shipwright.io/referenced.secret='true'各項目の説明:
<namespace>- シークレットを作成する名前空間を指定します。
< コンテナーレジストリーシークレット名 >-
コンテナーレジストリー認証情報を格納する
シークレットリソースの名前を指定します。
spec.output.pushSecretフィールドの値をBuildCR のシークレット名に設定します。apiVersion: shipwright.io/v1beta1 kind: Build metadata: name: buildah-golang-build # ... output: image: <path_to_image> pushSecret: <container_registry_secret_name>以下は、
< イメージへのパス >- 出力イメージの保存場所を指定します。
< コンテナーレジストリーシークレット名 >-
コンテナーレジストリー認証情報を格納する
シークレットリソースの名前を指定します。
-
ビルドCR を使用してビルドを実行します。イメージのプッシュ中に、コンテナーレジストリーの認証情報が検証されます。認証に失敗した場合、ビルドはイメージをプッシュしません。