Push immagini con la CLI Databricks

La CLI Databricks fornisce il comando databricks air images push helper per combinare l'autenticazione Docker, il tag delle immagini e il push verso Registro degli Artefatti. Rileva automaticamente la regione del registro. Puoi usare questo strumento di supporto invece dei passaggi manuali della guida di Artifact Registry. L'assistente non crea immagini né invia carichi di lavoro.

Prerequisites

Configura l'autenticazione dello spazio di lavoro

Crea o aggiorna un profilo OAuth dello spazio di lavoro dove vuoi archiviare l'immagine:

databricks auth login --profile my-databricks-profile

L'aiuto per le credenziali Docker richiede questo profilo OAuth dello spazio di lavoro. Per i metodi di autenticazione supportati, vedi Configura l'autenticazione Docker.

Invia un'immagine locale

Ad esempio, eseguire il push di un'immagine locale chiamata my-training-image:v1 a main.ml.training:v1:

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

Il comando stampa il nome dell'immagine del Catalogo Unity da usare come environment.unity_catalog_image nel tuo carico di lavoro YAML. Per questo esempio, usa main.ml.training:v1, come mostrato in Usa un'immagine Docker in un carico di lavoro.

L'aiutante riutilizza un'immagine sorgente locale quando esiste. Altrimenti, estrae l'immagine sorgente di linux/amd64. Aggiungi --pull per aggiornare un'immagine sorgente dal suo registro anche se è disponibile localmente. Le immagini devono usare linux/amd64. Ricostruisci un'immagine locale incompatibile per quella piattaforma prima di spingerla. Se l'immagine sorgente è in un registro privato, autentica Docker su quel registro prima di eseguire l'helper.

Per inserire i dettagli dell'immagine in modo interattivo, esegui databricks air images push --profile my-databricks-profile senza le bandiere dell'immagine. Esegui databricks air images push --help per visualizzare tutte le opzioni.

Esegui il push di un'immagine da un altro registry

Puoi anche usare l'aiutante CLI per copiare un'immagine esistente da un altro registro container in Registro degli Artefatti.

L'esempio seguente utilizza come origine un repository privato di Amazon Elastic Container Registry (ECR). Per questo esempio, installa e configura la CLI AWS con credenziali che possano autenticarsi all'ECR e recuperare l'immagine sorgente. Queste credenziali AWS sono separate dal tuo profilo Databricks.

Innanzitutto, autentica Docker nel registro ECR di origine. Sostituisci i valori di esempio per l'ID dell'account AWS, la regione, il repository e il tag dell'immagine con i tuoi valori. La regione AWS deve corrispondere al registro ECR di origine, non allo spazio di lavoro Databricks di destinazione. Vedi autenticazione del registro privato nella documentazione AWS.

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

Poi passa l'intero URI dell'immagine ECR come --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

Il --pull flag recupera l'immagine linux/amd64 da ECR anche se è già archiviata localmente. L'helper utilizza la tua installazione locale di Docker per estrarre, etichettare e spingere l'immagine. L'immagine sorgente in ECR è rimasta invariata. Dopo che il push è riuscito, imposta environment.unity_catalog_image su main.ml.training:ecr-v1 nel file YAML del workload.