Dela via


Skapa och push-överföra en avbildning från en app med hjälp av ett molnbaserat buildpack

Azure CLI-kommandot az acr pack build använder pack CLI-verktyget från Buildpacks för att skapa en app och skicka avbildningen till ett Azure-containerregister. Den här funktionen ger ett alternativ för att snabbt skapa en containeravbildning från programmets källkod i Node.js, Java och andra språk utan att behöva definiera en Dockerfile.

Du kan använda Azure Cloud Shell eller en lokal installation av Azure CLI för att köra exemplen i den här artikeln. Om du vill använda den lokalt krävs version 2.0.70 eller senare. Kör az --version för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.

Viktigt!

Den här funktionen finns i förhandsgranskning. Förhandsversioner är tillgängliga för dig under förutsättning att du godkänner de kompletterande användningsvillkoren. Vissa aspekter av funktionen kan ändras innan den är allmänt tillgänglig (GA).

Använda build-kommandot

Om du vill skapa och push-överföra en containeravbildning med hjälp av Cloud Native Buildpacks kör du kommandot az acr pack build . Kommandot az acr build skapar och push-överför en avbildning från en Dockerfile-källa och relaterad kod, medan az acr pack build du anger ett programkällträd direkt.

Ange minst följande när du kör az acr pack build:

  • Ett Azure-containerregister där du kör kommandot
  • Ett bildnamn och en tagg för den resulterande bilden
  • En av de kontextplatser som stöds för ACR-uppgifter, till exempel en lokal katalog, en GitHub-lagringsplats eller en fjärr-tarball
  • Namnet på en Buildpack builder-avbildning som passar ditt program. Om den inte cachelagras av Azure Container Registry måste builder-avbildningen hämtas med hjälp av parametern --pull .

az acr pack build stöder andra funktioner i ACR Tasks-kommandon, inklusive körningsvariabler och aktivitetskörningsloggar som strömmas och även sparas för senare hämtning.

Exempel: Skapa Node.js avbildning med Cloud Foundry Builder

I följande exempel skapas en containeravbildning från en Node.js-app i lagringsplatsen Azure-Samples/nodejs-docs-hello-world med hjälp av cloudfoundry/cnb:cflinuxfs3 byggaren.

az acr pack build \
    --registry myregistry \
    --image node-app:1.0 \
    --pull --builder cloudfoundry/cnb:cflinuxfs3 \
    https://github.com/Azure-Samples/nodejs-docs-hello-world.git

I det här exemplet skapas avbildningen node-app med taggen 1.0 och skickas till containerregistret myregistry . I det här exemplet läggs målregistrets namn uttryckligen till i avbildningsnamnet. Om det inte anges läggs namnet på registerinloggningsservern automatiskt till avbildningsnamnet.

Kommandoutdata visar förloppet för att skapa och push-överföra avbildningen.

När avbildningen har skapats kan du köra den med Docker, om du har installerat den. Logga först in i registret:

az acr login --name myregistry

Kör avbildningen:

docker run --rm -p 1337:1337 myregistry.azurecr.io/node-app:1.0

Bläddra till localhost:1337 i din favoritwebbläsare för att se exempelwebbappen. Tryck [Ctrl]+[C] för att stoppa containern.

Exempel: Skapa Java-avbildning med Heroku Builder

I följande exempel skapas en containeravbildning från Java-appen i lagringsplatsen buildpack/sample-java-app med hjälp av heroku/buildpacks:18 byggaren.

az acr pack build \
    --registry myregistry \
    --image java-app:{{.Run.ID}} \
    --pull --builder heroku/buildpacks:18 \
    https://github.com/buildpack/sample-java-app.git

Det här exemplet skapar avbildningen java-app taggad med körnings-ID:t för kommandot och push-överför den till containerregistret myregistry .

Kommandoutdata visar förloppet för att skapa och push-överföra avbildningen.

När avbildningen har skapats kan du köra den med Docker, om du har installerat den. Logga först in i registret:

az acr login --name myregistry

Kör avbildningen och ersätt avbildningstaggen med runid:

docker run --rm -p 8080:8080 myregistry.azurecr.io/java-app:runid

Bläddra till localhost:8080 i din favoritwebbläsare för att se exempelwebbappen. Tryck [Ctrl]+[C] för att stoppa containern.

Nästa steg

När du har skapat och push-överfört en containeravbildning med az acr pack buildkan du distribuera den som vilken avbildning som helst till ett valfritt mål. Distributionsalternativen för Azure omfattar bland annat körning av den i App Service eller Azure Kubernetes Service.

Mer information om ACR Tasks-funktioner finns i Automatisera containeravbildningsversioner och underhåll med ACR Tasks.