Push images met de Databricks CLI

De Databricks CLI biedt het helpercommando databricks air images push om Docker-authenticatie, image tagging en pushen naar Artifact Registry te combineren. Het detecteert automatisch de registerregio. Je kunt deze helper gebruiken in plaats van de handmatige stappen in de Artifact Registry-gids. De helper bouwt geen images en dient geen workloads in.

Prerequisites

  • Installeer Databricks CLI versie 1.19.0 of hoger. Zie De Databricks CLI installeren of bijwerken.
  • Stel het Artifact Registry in in de werkruimte waar je de image wilt opslaan. Zie Begin met het Artefactregister.
  • Maak een bestemmingscatalogus en schema aan of selecteer dit, en verkrijg de vereiste Artifact Registry-rechten.
  • Installeer en start Docker op je lokale machine. Docker moet beschikbaar zijn op jouw PATH.

Workspace-authenticatie configureren

Maak een werkruimte OAuth-profiel aan of vernieuw het werkruimte waar je de afbeelding wilt opslaan:

databricks auth login --profile my-databricks-profile

De Docker-inloggegevenshelper vereist dit OAuth-profiel van de werkruimte. Voor ondersteunde authenticatiemethoden, zie Docker-authenticatie instellen.

Een lokale image pushen

Bijvoorbeeld, duw een lokale image met de naam my-training-image:v1 naar main.ml.training:v1:

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

Het commando print de naam van de Unity Catalog-image af om te gebruiken als environment.unity_catalog_image in je workload-YAML. Gebruik in dit voorbeeld main.ml.training:v1, zoals getoond in Gebruik een Docker-image in een workload.

De helper hergebruikt een lokaal bronbeeld wanneer er een bestaat. Anders haalt het de bronafbeelding op voor linux/amd64. Voeg toe --pull om een bronafbeelding uit het register te verversen, zelfs als deze lokaal beschikbaar is. Afbeeldingen moeten gebruikmaken van linux/amd64. Bouw een lokale image die incompatibel is met het betreffende platform opnieuw op voordat je deze pusht. Als de bronimage in een privé register staat, authenticeer dan Docker bij dat register voordat je de helper uitvoert.

Om de afbeeldingsdetails interactief in te voeren, voer databricks air images push --profile my-databricks-profile je zonder afbeeldingsvlaggen. Voer databricks air images push --help uit om alle opties te zien.

Push een image vanuit een andere registry

Je kunt ook de CLI-helper gebruiken om een bestaand image van een ander containerregister naar Artifact Registry te kopiëren.

Het volgende voorbeeld gebruikt een privérepository in Amazon Elastic Container Registry (ECR) als bron. Installeer en configureer de AWS CLI voor dit voorbeeld met inloggegevens waarmee u zich bij ECR kunt verifiëren en de bronimage kunt ophalen. Deze AWS-inloggegevens staan los van je Databricks-profiel.

Verifieer Docker eerst bij het bron-ECR-register. Vervang het voorbeeld van de AWS-account-ID, regio, repository en imagetag door je eigen waarden. De AWS-regio moet overeenkomen met het bronregister in ECR, niet met de Databricks-werkruimte van de bestemming. Zie authenticatie voor privéregisters in de AWS-documentatie.

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

Geef vervolgens de volledige ECR-image URI door als --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

De --pull vlag haalt de linux/amd64 afbeelding op van ECR, zelfs als deze al lokaal gecached is. De helper gebruikt je lokale Docker-installatie om het image te trekken, taggen en pushen. De bronafbeelding in ECR is ongewijzigd. Nadat het pushen is gelukt, stel environment.unity_catalog_image in op main.ml.training:ecr-v1 in je workload-YAML.