Развертывание приложения Spring Boot в службе приложений Azure на платформе Linux

Из этого руководства вы узнаете, как с помощью Docker включить приложение Spring Boot в контейнер и развернуть образ Docker в узле Linux в Службе приложений Azure.

Предварительные требования

Для работы с этим руководством требуется следующее.

Примечание

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

Создание веб-приложения Spring Boot в Docker

Ниже приведены пошаговые инструкции по созданию простого веб-приложения Spring Boot и его локальному тестированию.

  1. Откройте командную строку и создайте локальный каталог для размещения приложения, после чего перейдите в этот каталог, например:

    mkdir SpringBoot
    cd SpringBoot
    
  2. Клонируйте образец проекта Spring Boot on Docker Getting Started (Запуск Spring Boot в Docker) в созданный каталог, например:

    git clone https://github.com/spring-guides/gs-spring-boot-docker.git
    
  3. Перейдите в каталог готового проекта, например:

    cd gs-spring-boot-docker/complete
    
  4. Выполните сборку файла JAR с помощью Maven, например:

    mvn package
    
  5. После создания веб-приложения перейдите в каталог target, где находится JAR-файл, и запустите веб-приложение, например:

    cd target
    java -jar spring-boot-docker-complete-0.0.1-SNAPSHOT.jar --server.port=80
    
  6. Проверьте веб-приложение, перейдя к нему локально с помощью веб-браузера. Например, если у вас установлен CuRL и сервер Tomcat настроен для работы с использованием порта 80:

    curl http://localhost
    
  7. Должно появиться следующее сообщение: Hello Docker World.

    Локальный просмотр образца приложения

Создание реестра контейнеров Azure для использования в качестве частного реестра Docker

Ниже приведены инструкции по созданию реестра контейнеров Azure с использованием портала Azure.

Примечание

Если вы хотите использовать Azure CLI, а не портал Azure, выполните процедуру, описанную в разделе Создание частного реестра контейнеров Docker с помощью Azure CLI 2.0.

  1. Перейдите на портал Azure и выполните вход.

    После входа в свою учетную запись на портале Azure выполните инструкции, приведенные в кратком руководстве по Создание частного реестра контейнеров Docker с помощью портала Azure, которые здесь полезно представить еще раз.

  2. Щелкните значок меню Создать, а затем выберите Контейнеры и Реестр контейнеров Azure.

    Создание нового реестра контейнеров Azure

  3. Когда откроется страница Создать реестр контейнеров, укажите имя реестра, подписку, группу ресурсов и расположение. Щелкните Создать.

    Настройка параметров реестра контейнеров Azure

  4. Выберите Ключи доступа в разделе Параметры и выберите Включено для параметра Администратор.

    Включение учетной записи администратора на портале Azure

Настройка Maven для создания образа в Реестре контейнеров Azure

  1. Перейдите в каталог завершенного проекта для приложения Spring Boot (например "C:\SpringBoot\gs-spring-boot-docker\complete" или " /users/robert/SpringBoot/gs-spring-boot-docker/complete") и откройте файл pom.xml в текстовом редакторе.

  2. Обновите коллекцию <properties> в файле pom.xml, добавив последнюю версию jib-maven-plugin, значение сервера входа и параметры доступа для Реестра контейнеров Azure из предыдущего раздела этого руководства. Пример:

    <properties>
       <jib-maven-plugin.version>3.1.1</jib-maven-plugin.version>
       <docker.image.prefix>wingtiptoysregistry.azurecr.io</docker.image.prefix>
       <java.version>1.8</java.version>
    </properties>
    
  3. Добавьте jib-maven-plugin в коллекцию <plugins> в файле pom.xml. В этом примере используется версия 3.1.1.

    Укажите базовый образ в <from>/<image> (здесь это mcr.microsoft.com/java/jre:8-zulu-alpine). Укажите имя окончательного образа, который будет создан на основе базового в <to>/<image>.

    {docker.image.prefix} проверки подлинности — это значение сервера входа на странице реестра, показанной выше. {project.artifactId} — это имя и номер версии JAR-файла из первой сборки проекта Maven.

    <plugin>
      <artifactId>jib-maven-plugin</artifactId>
      <groupId>com.google.cloud.tools</groupId>
      <version>${jib-maven-plugin.version}</version>
      <configuration>
         <from>
             <image>mcr.microsoft.com/java/jre:8-zulu-alpine</image>
         </from>
         <to>
             <image>${docker.image.prefix}/${project.artifactId}</image>
         </to>
      </configuration>
    </plugin>
    
  4. Перейдите в каталог завершенного проекта для приложения Spring Boot и выполните команду ниже для перестроения приложения и отправки контейнера в реестр контейнеров Azure:

    az acr login -n wingtiptoysregistry && mvn compile jib:build
    

Примечание

  1. Команда az acr login ... выполнит попытку входа в Реестр контейнеров Azure. В противном случае потребуется указать <username> и <password> для jib-maven-plugin. Дополнительные сведения см. в разделе о методах проверки подлинности в репозитории Jib.
  2. При отправке образа в Реестр контейнеров Azure с помощью Jib образ не будет использовать Dockerfile (дополнительные сведения см. в этом документе).

Создание веб-приложения в Linux в службе приложений Azure с помощью образа контейнера

  1. Перейдите на портал Azure и выполните вход.

  2. Щелкните значок меню Создать ресурс, а затем выберите Вычисления и Веб-приложение.

    Создание веб-приложения на портале Azure

  3. Когда отобразится страница Веб-приложение в Linux, введите следующие сведения.

    • В раскрывающемся списке выберите свою подписку.

    • Выберите существующую группу ресурсов или укажите имя, чтобы создать новую группу ресурсов.

    • Введите уникальное имя в поле Имя приложения, например wingtiptoyslinux.

    • Укажите Docker Container для публикации.

    • В поле Операционная система выберите Linux.

    • Выберите регион.

    • Примите план Linux и выберите существующий план службы приложений или щелкните Создать, чтобы создать новый.

    • Щелкните Далее: Docker (Далее: Docker).

    Щелкните "Далее: Docker", чтобы продолжить.

    На странице Веб-приложение выберите Docker и введите следующие сведения:

    • Выберите Один контейнер.

    • Реестр: Выберите свой контейнер, например wingtiptoysregistry.

    • Образ. Выберите созданный ранее образ, например spring-boot-docker.

    • Тег. Выберите тег для образа, например latest.

    • Команда запуска: Оставьте это поле пустым, так как образ уже включает команду запуска.

    Введя эти данные, щелкните Просмотр и создание.

    Для завершения щелкните "Просмотр и создание".

    • Щелкните Review + create (Просмотреть и создать).

Просмотрите сведения и щелкните Создать.

Когда развертывание будет завершено, выберите Перейти ресурсу. На странице развертывания отобразится URL-адрес для доступа к приложению.

Получение URL-адреса развертывания

Примечание

В Azure интернет-запросы будут автоматически сопоставляться со встроенным сервером Tomcat, который использует порт 80. Если вы настроили встроенный сервер Tomcat так, чтобы он работал с портом 8080 или пользовательским портом, в веб-приложение необходимо добавить переменную среды, которая определяет порт для вашего встроенного сервера Tomcat. Для этого выполните следующие действия.

  1. Перейдите на портал Azure и выполните вход.

  2. Щелкните значок Веб-приложения и выберите нужное приложение на странице Службы приложений.

  3. В области навигации слева щелкните Конфигурация.

  4. В разделе Параметры приложения добавьте новый параметр с именем WEBSITES_PORT и введите номер пользовательского порта в качестве значения.

  5. Щелкните ОК. Затем нажмите кнопку Save (Сохранить).

Сохранение номера пользовательского порта на портале Azure

Очистка ресурсов

Если они больше не нужны, используйте портал Azure, чтобы удалить ресурсы, созданные в этой статье во избежание непредвиденных расходов.

Дальнейшие действия

Дополнительные сведения о Spring и Azure см. в центре документации об использовании Spring в Azure.

Дополнительные ресурсы

Дополнительные сведения об использовании приложений Spring Boot в Azure см. в следующих статьях:

Дополнительные сведения об использовании Java в Azure см. в статьях Azure для разработчиков Java и Working with Azure DevOps and Java (Работа с Azure DevOps и Java).

Дополнительные сведения о Spring Boot в образце проекта Docker см. в разделе Spring Boot on Docker Getting Started (Начало работы с Spring Boot в Docker).

Справку по началу работы с собственными приложениями Spring Boot см. на странице Spring Initializr: https://start.spring.io/.

Дополнительные сведения о создании простого приложения Spring Boot см. на странице Spring Initializr: https://start.spring.io/.

Дополнительные примеры использования пользовательских образов Docker в Azure см. в разделе Применение пользовательского образа Docker для веб-приложения Azure на платформе Linux.