DatabricksのCLIでイメージをプッシュします

Important

この機能は ベータ版です。 これを使用するには、ワークスペース管理者がワークスペースプレビューページからAIランタイムベータ機能とDatabricksアーティファクトレジストリのプレビューを有効にしなければなりません。

Databricks CLIは、Docker認証、イメージタグ付け、Artifact Registryへのプッシュを組み合わせるためのヘルパーコマンド databricks air images push を提供します。 レジストリ リージョンを自動的に検出します。 このヘルパーは、 アーティファクトレジストリガイドの手動ステップの代わりに使えます。 ヘルパーはイメージの作成やワークロードの提出を行いません。

Prerequisites

ワークスペース認証の設定

画像を保存したいワークスペース用のワークスペースOAuthプロファイルを作成または更新してください:

databricks auth login --profile my-databricks-profile

Dockerの認証ヘルパーはこのワークスペースのOAuthプロファイルを必要とします。 サポートされている認証方法については、 Docker 認証の設定を参照してください。

ローカル画像をプッシュする

例えば、my-training-image:v1 という名前のローカルイメージを main.ml.training:v1 にプッシュします:

databricks air images push \
  --profile my-databricks-profile \
  --source my-training-image:v1 \
  --catalog main \
  --schema ml \
  --artifact training:v1

このコマンドは、ワークロード YAML で environment.unity_catalog_image として使用する Unity Catalog のイメージ名を表示します。 この例では、main.ml.training:v1 に示されているように、 を使用します。

ヘルパーは、ローカルのソース画像が存在する場合は、それを再利用します。 そうでない場合は、linux/amd64 のソース イメージをプルします。 --pull を追加すると、ソース イメージがローカルに存在する場合でも、レジストリからその画像を再読み込みします。 画像は linux/amd64を使用しなければなりません。 そのプラットフォーム用に、互換性のないローカルイメージを再構築してからプッシュしてください。 ソース イメージがプライベート レジストリにある場合は、ヘルパーを実行する前に、Docker をそのレジストリに対して認証してください。

画像の詳細をインタラクティブに入力するには、画像フラグなしで databricks air images push --profile my-databricks-profile 実行してください。 すべてのオプションを表示するには、databricks air images push --help を実行します。

別のレジストリからイメージをプッシュする

また、CLIヘルパーを使って、他のコンテナレジストリからアーティファクトレジストリに既存のイメージをコピーすることもできます。

以下の例では、プライベートなAmazon Elasticコンテナレジストリ(ECR)リポジトリをソースとして使用しています。 たとえば、ECR への認証を行い、ソース イメージを取得できる資格情報を使用して、AWS CLI をインストール、構成します。 これらのAWS認証情報は、Databricksのプロファイルとは別個のものです。

まず、Docker をソースとなる ECR レジストリに対して認証します。 たとえば挙げられている AWS アカウント ID、リージョン、リポジトリ、イメージ タグを、ご利用の値に置き換えてください。 AWSリージョンは、目的地のDatabricksワークスペースではなく、元のECRレジストリと一致していなければなりません。 AWSのドキュメントにある プライベートレジストリ認証 を参照してください。

aws ecr get-login-password --region us-west-2 | \
  docker login --username AWS --password-stdin \
  123456789012.dkr.ecr.us-west-2.amazonaws.com

その後、完全なECRイメージURIを以下の形で渡します --source:

databricks air images push \
  --profile my-databricks-profile \
  --source 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-training-image:v1 \
  --catalog main \
  --schema ml \
  --artifact training:ecr-v1 \
  --pull

--pullフラグは、linux/amd64イメージがすでにローカルにキャッシュされていても、ECRから取得します。 ヘルパーはローカルのDockerインストールを使ってイメージをプル、タグ付け、プッシュします。 ECR内のソースイメージは変更されていません。 プッシュが成功したら、ワークロード YAML 内で environment.unity_catalog_image を main.ml.training:ecr-v1 に設定してください。