Развертывание приложения 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
    

Заметка

Команда az acr login ... пытается войти в Реестр контейнеров Azure. В противном случае необходимо указать <username> и <password> для jib-maven-plugin. Дополнительные сведения см. в статье "Методы проверки подлинности " в jib.

При использовании 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".