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


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

В этом руководстве описывается использование Docker для контейнеризации приложения Spring Boot и развертывания собственного образа Docker на узле Linux в службе приложений Azure.

Необходимые условия

Чтобы выполнить действия, описанные в этом руководстве, необходимо иметь следующие предварительные требования:

Заметка

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

Создание веб-приложения Spring Boot на Docker: руководство для начинающих

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

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

    mkdir SpringBoot
    cd SpringBoot
    
  2. Клонируйте пример проекта Spring Boot в Docker Getting Started в созданный каталог; Например:

    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.2.0</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.2.0.

    Укажите базовый образ в <from>/<image>, здесь mcr.microsoft.com/openjdk/jdk:11-ubuntu. Укажите имя окончательного образа, созданного из базового образа в <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/openjdk/jdk:11-ubuntu</image>
         </from>
         <to>
             <image>${docker.image.prefix}/${project.artifactId}</image>
         </to>
      </configuration>
    </plugin>
    
  4. Перейдите в полный каталог проекта для приложения Spring Boot и выполните следующую команду, чтобы перестроить приложение и отправить контейнер в реестр контейнеров Azure:

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

Заметка

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

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

  1. Перейдите к порталу Azure и войдите.

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

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

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

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

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

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

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

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

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

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

    • Нажмите кнопку Далее: Docker.

    нажмите кнопку

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

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

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

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

    • тег: выберите тег для изображения, например последний.

    • команда запуска : оставить ее пустой, так как образ уже имеет команду запуска

    После ввода всей вышеуказанной информации выберите Просмотр и создание.

    Завершите, выбрав

    • Выберите Проверка, а затем создание.

Просмотрите информацию и выберите Создать.

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

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

Заметка

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

  1. Перейдите к порталу Azure и войдите.

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

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

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

  5. Нажмите кнопку ОК. Затем выберите Сохранить.

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

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

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

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

Чтобы узнать больше о Spring и Azure, перейдите в центр документации Spring в Azure.

См. также

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

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

Дополнительные сведения о примере проекта Spring Boot в Docker см. в разделе Spring Boot в Docker Getting Started.

См. Spring Initializr по адресу для получения помощи в начале работы с собственными приложениями Spring Boot.

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

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