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 build
kan 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.