This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.3.8. プライベートレジストリーでの Docker 認証情報の使用
プライベートコンテナーレジストリーの有効な認証情報を指定して、.docker/config.json ファイルでビルドを提供できます。これにより、プライベートコンテナーレジストリーにアウトプットイメージをプッシュしたり、認証を必要とするプライベートコンテナーイメージレジストリーからビルダーイメージをプルすることができます。
OpenShift Container Platform コンテナーイメージレジストリーでは、OpenShift Container Platform が自動的にシークレットを生成するので、この作業は必要ありません。
デフォルトでは、.docker/config.json ファイルはホームディレクトリーにあり、以下の形式となっています。
auths:
https://index.docker.io/v1/:
auth: "YWRfbGzhcGU6R2labnRib21ifTE="
email: "user@example.com"
auths:
https://index.docker.io/v1/:
auth: "YWRfbGzhcGU6R2labnRib21ifTE="
email: "user@example.com"
このファイルに複数のコンテナーイメージレジストリーを定義できます。または docker login コマンドを実行して、このファイルに認証エントリーを追加することも可能です。ファイルが存在しない場合には作成されます。
Kubernetes では Secret オブジェクトが提供され、これを使用して設定とパスワードを保存することができます。
前提条件
- .docker/config.json ファイル
手順
ローカルの .docker/config.json ファイルからシークレットを作成します。
oc create secret generic dockerhub \ --from-file=.dockerconfigjson=<path/to/.docker/config.json> \ --type=kubernetes.io/dockerconfigjson$ oc create secret generic dockerhub \ --from-file=.dockerconfigjson=<path/to/.docker/config.json> \ --type=kubernetes.io/dockerconfigjsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドにより、
dockerhubという名前のシークレットの JSON 仕様が生成され、オブジェクトが作成されます。pushSecretフィールドをBuildConfigのoutputセクションに追加し、作成したsecretの名前 (上記の例では、dockerhub) に設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc set build-secretコマンドを使用して、ビルド設定にプッシュするシークレットを設定します。oc set build-secret --push bc/sample-build dockerhub
$ oc set build-secret --push bc/sample-build dockerhubCopy to Clipboard Copied! Toggle word wrap Toggle overflow pushSecretフィールドを指定する代わりに、プッシュシークレットをビルドで使用されるサービスアカウントにリンクできます。デフォルトで、ビルドは ビルダー サービスアカウントを使用します。シークレットにビルドのアウトプットイメージをホストするリポジトリーに一致する認証情報が含まれる場合、プッシュシークレットはビルドに自動的に追加されます。oc secrets link builder dockerhub
$ oc secrets link builder dockerhubCopy to Clipboard Copied! Toggle word wrap Toggle overflow ビルドストラテジー定義に含まれる
pullSecretを指定して、プライベートコンテナーイメージレジストリーからビルダーコンテナーイメージをプルします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc set build-secretコマンドを使用して、ビルド設定でプルシークレットを設定します。oc set build-secret --pull bc/sample-build dockerhub
$ oc set build-secret --pull bc/sample-build dockerhubCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記以下の例では、ソールビルドに
pullSecretを使用しますが、Docker とカスタムビルドにも該当します。pullSecretフィールドを指定する代わりに、プルシークレットをビルドで使用されるサービスアカウントにリンクできます。デフォルトで、ビルドは ビルダー サービスアカウントを使用します。シークレットにビルドのインプットイメージをホストするリポジトリーに一致する認証情報が含まれる場合、プルシークレットはビルドに自動的に追加されます。oc secrets link builder dockerhub
$ oc secrets link builder dockerhubCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記この機能を使用するには、
fromイメージをBuildConfig仕様に指定する必要があります。oc new-buildまたはoc new-appで生成される Docker ストラテジービルドは、場合によってこれを実行しない場合があります。