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

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 のイメージ名を表示します。 たとえば、ワークロードでの Docker イメージの使用に示されているように、main.ml.training:v1 を使用します。

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

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

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

また、CLI ヘルパーを使用して、別の Container Registry にある既存のイメージを Artifact Registry にコピーすることもできます。

次の例では、非公開の Amazon Elastic Container Registry (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 フラグを指定すると、その画像がすでにローカルにキャッシュされていたとしても、ECR から linux/amd64 イメージを取得します。 ヘルパーはローカルのDockerインストールを使ってイメージをプル、タグ付け、プッシュします。 ECR内のソースイメージは変更されていません。 プッシュが成功したら、ワークロード YAML 内で environment.unity_catalog_image を main.ml.training:ecr-v1 に設定してください。