Поделиться через


Создайте и отправьте изображение из приложения с помощью Cloud Native Buildpack

Команда Azure CLI az acr pack build использует pack инструмент CLI из Buildpacks, чтобы создать приложение и отправить его образ в реестр контейнеров Azure. Эта функция предоставляет возможность быстро создать образ контейнера из исходного кода вашего приложения на Node.js, Java и других языках без необходимости определять Dockerfile.

Вы можете использовать Azure Cloud Shell или локальную установку Azure CLI для выполнения примеров из этой статьи. Если вы хотите использовать его локально, требуется версия 2.0.70 или более поздняя. Чтобы узнать версию, выполните команду az --version. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.

Внимание

Эта функция в настоящее время доступна для предварительного ознакомления. Предварительные версии предоставляются только в том случае, если вы принимаете дополнительные условия использования. Некоторые аспекты этой функции могут быть изменены до выхода общедоступной версии.

Используйте команду сборки

Чтобы создать и отправить образ контейнера с помощью Cloud Native Buildpacks, выполните команду az acr pack build. В то время как команда az acr build создает и отправляет изображение из исходного кода Dockerfile и связанного кода, с помощью az acr pack build вы указываете дерево исходного кода приложения напрямую.

Как минимум при запуске az acr pack build необходимо указать следующее:

  • Реестр контейнеров Azure, в котором вы запускаете команду
  • Имя изображения и тег для результирующего изображения
  • Одно из поддерживаемых местоположений контекста для задач ACR, например локальный каталог, репозиторий GitHub или удаленный архив
  • Имя образа компоновщика Buildpack, подходящего для вашего приложения. Если образ компоновщика не находится в кэше Реестра контейнеров Azure, его необходимо извлечь с помощью параметра --pull.

az acr pack build поддерживает другие функции команд задач ACR, включая переменные запуска и журналы выполнения задач, которые передаются в потоке и также сохраняются для последующего извлечения.

Пример: создание образа Node.js с помощью Cloud Foundry Builder

В следующем примере создается образ контейнера из приложения Node.js в репозитории Azure-Samples/nodejs-docs-hello-world с помощью конструктора 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

В этом примере создается образ node-app с тегом 1.0 и помещается в реестр контейнера myregistry. В этом примере имя целевого реестра явно добавляется к имени образа. Если не указано иное, имя сервера входа в реестр автоматически добавляется к имени образа.

Выходные данные команды показывают прогресс построения и продвижения изображения.

После успешного создания образа вы можете запустить его с помощью Docker, если он у вас установлен. Сначала войдите в свой реестр:

az acr login --name myregistry

Запуск образа:

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

Перейдите к localhost:1337 в своем любимом браузере, чтобы увидеть образец веб-приложения. Нажмите [Ctrl]+[C], чтобы остановить контейнер.

Пример: создание образа Java с помощью Heroku Builder

В следующем примере создается образ контейнера из приложения Java в репозитории buildpack/sample-java-app с помощью построителя 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

В этом примере создается образ java-app, помеченный идентификатором выполнения команды, и помещается в реестр контейнера myregistry.

Выходные данные команды показывают прогресс построения и продвижения изображения.

После успешного создания образа вы можете запустить его с помощью Docker, если он у вас установлен. Сначала войдите в свой реестр:

az acr login --name myregistry

Запустите изображение, заменив свой тег изображения на runid:

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

Перейдите к localhost:8080 в своем любимом браузере, чтобы увидеть образец веб-приложения. Нажмите [Ctrl]+[C], чтобы остановить контейнер.

Следующие шаги

После создания и отправки образа контейнера с помощью az acr pack build вы можете развернуть его, как любой образ, в выбранной вами цели. Варианты развертывания Azure включают, среди прочего, запуск в Службе приложений или в Службе Azure Kubernetes.

Дополнительные сведения о функциях задач ACR см. в разделе Автоматизация построения и обслуживания образов контейнеров с помощью задач ACR.