Использование поддержки Docker для развертывания контейнерных приложений на любом языке

Интерфейс командной строки разработчика Azure (azd) поддерживает Docker в качестве языка, позволяя определять службы, созданные и развернутые с помощью Dockerfile. Если приложение написано на языке, который azd не поддерживает встроенную поддержку ( например, Go, Rust, Ruby, PHP или Kotlin), вы можете использовать Docker в качестве языка для сборки и развертывания в Azure. Указав Docker в качестве языка, вы получаете полный контроль над процессом контейнеризации, что делает его идеальным для:

  • Go, Rust, Ruby, PHP, Kotlin и другие языки без встроенной azd поддержки
  • Приложения Polyglot (например, служба, использующая как Python, так и Node.js)
  • Сценарии, в которых требуется уменьшить локальные зависимости для запуска шаблона
  • Рабочие нагрузки с пользовательскими требованиями к ОС или среде выполнения
  • Перенос существующих проектов на основе Docker в Azure

Например, если у вас есть приложение, написанное в Go и хотите развернуть его для Контейнеры приложений Azure с помощью azd, можно определить Dockerfile для службы Go и настроить azd для его использования.

Настройка Docker в качестве языка в azure.yaml

Чтобы использовать Docker для приложения Go, приложения Rust или любой другой службы, задайте language для свойства docker значение в azure.yaml файле и укажите путь к Dockerfile:

services:
  myservice:
    project: ./src/myservice
    language: docker
    docker:
      path: ./Dockerfile

В этой конфигурации azd используется указанный файл Dockerfile для сборки и развертывания службы. Этот подход подходит для любого языка или среды выполнения, которые можно контейнеризировать.

Пример сценария

Начальный hello-azd шаблон демонстрирует использование Docker в качестве языка в сочетании с удаленными сборками. azure.yaml В файле наборы шаблонов language: docker и указываетremoteBuild: true:

metadata:
  template: hello-azd-dotnet
name: azd-starter
services:
  web:
    project: ./src
    language: docker
    host: containerapp
    docker:
      path: ./Dockerfile
      remoteBuild: true

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

Используя удаленные сборки, hello-azd шаблон обеспечивает согласованный и оптимизированный интерфейс для всех пользователей независимо от локальной среды.

Дальнейшие шаги