Kompilowanie i wypychanie obrazu z aplikacji przy użyciu pakietu Buildpack natywnego dla chmury

Polecenie interfejsu wiersza polecenia az acr pack build platformy Azure używa narzędzia interfejsu pack wiersza polecenia z pakietu Buildpacks do kompilowania aplikacji i wypychania jej obrazu do rejestru kontenerów platformy Azure. Ta funkcja umożliwia szybkie tworzenie obrazu kontenera na podstawie kodu źródłowego aplikacji w Node.js, Java i innych językach bez konieczności definiowania pliku Dockerfile.

Aby uruchomić przykłady w tym artykule, możesz użyć Cloud Shell platformy Azure lub lokalnej instalacji interfejsu wiersza polecenia platformy Azure. Jeśli chcesz używać go lokalnie, wymagana jest wersja 2.0.70 lub nowsza. Uruchom polecenie az --version, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.

Ważne

Ta funkcja jest obecnie w wersji zapoznawczej. Wersje zapoznawcze są udostępniane pod warunkiem udzielenia zgody na dodatkowe warunki użytkowania. Niektóre cechy funkcji mogą ulec zmianie, zanim stanie się ona ogólnie dostępna.

Używanie polecenia kompilacji

Aby skompilować i wypchnąć obraz kontenera przy użyciu pakietów Buildpack natywnych dla chmury, uruchom polecenie az acr pack build . Podczas gdy polecenie az acr build kompiluje i wypycha obraz ze źródła dockerfile i powiązanego kodu, a następnie az acr pack build bezpośrednio określa drzewo źródłowe aplikacji.

Po uruchomieniu az acr pack buildprogramu określ co najmniej następujące elementy:

  • Rejestr kontenerów platformy Azure, w którym uruchamiasz polecenie
  • Nazwa obrazu i tag dla obrazu wynikowego
  • Jedna z obsługiwanych lokalizacji kontekstowych dla usługi ACR Tasks, takich jak katalog lokalny, repozytorium GitHub lub zdalna tarball
  • Nazwa obrazu konstruktora kompilacji odpowiednia dla aplikacji. Jeśli nie są buforowane przez Azure Container Registry, należy ściągnąć obraz konstruktora przy użyciu parametru --pull .

az acr pack build obsługuje inne funkcje poleceń usługi ACR Tasks, w tym zmienne uruchamiania i dzienniki uruchamiania zadań , które są przesyłane strumieniowo, a także zapisywane na potrzeby późniejszego pobierania.

Przykład: Kompilowanie obrazu Node.js za pomocą konstruktora Cloud Foundry

Poniższy przykład tworzy obraz kontenera z aplikacji Node.js w repozytorium Azure-Samples/nodejs-docs-hello-world przy użyciu konstruktora cloudfoundry/cnb:cflinuxfs3 .

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

Ten przykład kompiluje node-app obraz z tagiem 1.0 i wypycha go do rejestru kontenerów myregistry . W tym przykładzie nazwa rejestru docelowego jest jawnie dołączana do nazwy obrazu. Jeśli nie zostanie określona, nazwa serwera logowania rejestru jest automatycznie dołączana do nazwy obrazu.

Dane wyjściowe polecenia pokazują postęp kompilowania i wypychania obrazu.

Po pomyślnym skompilaniu obrazu można go uruchomić przy użyciu platformy Docker, jeśli został zainstalowany. Najpierw zaloguj się do rejestru:

az acr login --name myregistry

Uruchom obraz:

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

Przejdź do localhost:1337 w ulubionej przeglądarce, aby wyświetlić przykładową aplikację internetową. Naciśnij klawisz [Ctrl]+[C] , aby zatrzymać kontener.

Przykład: kompilowanie obrazu Java za pomocą konstruktora Heroku

Poniższy przykład kompiluje obraz kontenera z aplikacji Java w repozytorium buildpack/sample-java-app przy użyciu konstruktora heroku/buildpacks:18 .

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

W tym przykładzie obraz został java-app skompilowany przy użyciu identyfikatora uruchomienia polecenia i wypchnie go do rejestru kontenerów myregistry .

Dane wyjściowe polecenia pokazują postęp kompilowania i wypychania obrazu.

Po pomyślnym skompilaniu obrazu można go uruchomić przy użyciu platformy Docker, jeśli został zainstalowany. Najpierw zaloguj się do rejestru:

az acr login --name myregistry

Uruchom obraz, podstawiając tag obrazu dla identyfikatora Runid:

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

Przejdź do localhost:8080 w ulubionej przeglądarce, aby wyświetlić przykładową aplikację internetową. Naciśnij klawisz [Ctrl]+[C] , aby zatrzymać kontener.

Następne kroki

Po skompilowania i wypchnięciu obrazu kontenera za pomocą az acr pack buildpolecenia możesz wdrożyć go jak każdy obraz do wybranego obiektu docelowego. Opcje wdrażania platformy Azure obejmują uruchamianie go między innymi w App Service lub Azure Kubernetes Service.

Aby uzyskać więcej informacji na temat funkcji usługi ACR Tasks, zobacz Automatyzowanie kompilacji i konserwacji obrazu kontenera za pomocą usługi ACR Tasks.