Aller au contenu principal

Pousser des images avec la CLI Databricks

info

Bêta

Cette fonctionnalité est en version Bêta. Pour l’utiliser, un administrateur de Workspace doit activer les prévisualisations Fonctionnalités bêta du Runtime IA et Registre d’artefacts Databricks depuis la page de prévisualisation du Workspace.

La CLI de Databricks fournit la commande d'assistance databricks air images push pour combiner l'authentification Docker, le marquage d'image et l'envoi à Artifact Registry. Elle détecte automatiquement la région du registre. Vous pouvez utiliser cette aide au lieu des étapes manuelles du guide Artifact Registry. L'assistant ne crée pas d'images ni ne soumet de charges de travail.

Prérequis​

Configurer l’authentification du workspace​

Créez ou refresh un profil OAuth de workspace pour le workspace où vous souhaitez stocker l’image :

Shell
databricks auth login --profile my-databricks-profile

L’assistant d’identification Docker nécessite ce profil OAuth de workspace. Pour les méthodes d'authentification prises en charge, voir Configurer l'authentification Docker.

Push d'une image locale​

Par exemple, poussez une image locale nommée my-training-image:v1 vers main.ml.training:v1:

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

La commande affiche le nom d'image Unity Catalog à utiliser comme environment.unity_catalog_image dans votre YAML de charge de travail. Pour cet exemple, utilisez main.ml.training:v1, comme indiqué dans Utiliser une image Docker dans une charge de travail.

L'assistant réutilise une image source locale lorsqu'il en existe une. Sinon, il extrait l'image source pour linux/amd64. Ajoutez --pull pour refresh une image source depuis son registre même si elle est disponible localement. Les images doivent utiliser linux/amd64. Reconstruisez une image locale incompatible pour cette plateforme avant de l’envoyer. Si l'image source se trouve dans un registre privé, authentifiez Docker auprès de ce registre avant d'exécuter l'assistant.

Pour saisir les détails de l’image de manière interactive, exécutez databricks air images push --profile my-databricks-profile sans les indicateurs d’image. Exécutez databricks air images push --help pour toutes les options.

Transférer une image depuis un autre registre​

Vous pouvez également utiliser l'assistant CLI pour copier une image existante d'un registre de conteneurs à un autre vers Artifact Registry.

L'exemple suivant utilise un repository privé Amazon Elastic Container Registry (ECR) comme source. Pour cet exemple, installez et configurez le AWS CLI avec des identifiants capables de s'authentifier auprès d'ECR et d'extraire l'image source. Ces identifiants AWS sont distincts de votre profil Databricks.

Tout d'abord, authentifiez Docker auprès du registre ECR source. Remplacez l'exemple d'identifiant de compte AWS, de région, de repository et de tag d'image par vos propres valeurs. La région AWS doit correspondre au registre ECR source, et non au workspace Databricks de destination. Voir Authentification privée au registre dans la documentation AWS.

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

Ensuite, transmettez l’URI de l’image ECR complète en tant que --source:

Shell
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

Le flag --pull extrait l’image linux/amd64 depuis ECR même si elle est déjà en cache localement. L'assistant utilise votre installation Docker locale pour extraire, étiqueter et transférer l'image. L’image source dans ECR reste inchangée. Une fois le push réussi, définissez environment.unity_catalog_image sur main.ml.training:ecr-v1 dans votre YAML de charge de travail.