Запуск рабочего стола Docker с Spring Boot

Запуск рабочего стола Docker с Spring Boot

19 декабря 2022 г.

Я впервые столкнулся с Docker Desktop около 3 лет назад, когда работал главным архитектором (стратегические исследования и разработки) над эталонной архитектурой микросервисов в организации, занимающейся разработкой продуктов. В то время, когда я работал на своем корпоративном ноутбуке - стало утомительной задачей настроить виртуализацию и настройки, чтобы заставить его работать. Как только я наладил его бесперебойную работу, я понял, что требования к памяти, необходимые для его запуска, были довольно высокими. Иногда мне было трудно использовать мой ноутбук для ежедневной разработки, когда он работал. Это было также потому, что я работал над микросервисами, и у меня было запущено почти 6+ приложений с весенней загрузкой.

Опять же, в прошлом месяце я использовал Docker Desktop и обнаружил, что он работает более плавно и без проблем. Это было на моем личном ноутбуке. Кроме того, это связано с тем, что я запускал только один микросервис.

Я проведу вас шаг за шагом, чтобы установить рабочий стол Docker и создать образ Docker, отправить его в Docker, а затем создать/запустить его в контейнере Docker.

Требования

  1. Знание Spring Boot
  2. Основы контейнера Docker
  3. Windows 10 (обновленная)
  4. Докер для рабочего стола Windows
  5. Eclipse (проект Spring Boot)


Ссылка GitHub на репозиторий клонов/разветвленный код

https://github.com/sumithpuri/skp-spring-boot-docker-desktop


⦿ Установка подсистемы Windows для Linux

Сначала мы начнем с установки подсистемы Windows для Linux (WSL2). Вы должны убедиться, что в вашей Windows 10 установлены все последние обновления. В противном случае вы не сможете найти описанные функции.

Нажмите +I, чтобы перейти к настройкам Windows. Найдите/нажмите [Apps & Характеристики] > Нажмите [Дополнительные функции] > Нажмите [Дополнительные функции Windows] > Убедитесь, что [Виртуальная платформа/Виртуализация] уже выбрана. Если вы не видите такой опции, убедитесь, что вы включили [Виртуализацию] в BIOS.

Убедившись, что [Виртуальная платформа/Виртуализация] уже установлена, щелкните [Подсистема Windows для Linux], чтобы установить ее в своей системе. При желании вы можете установить [Платформу гипервизора Hyper-V/Windows].

Дополнительные сведения доступны по следующей ссылке.


⦿ Установить Docker для рабочего стола Windows

Следующий шаг – загрузка установочного пакета Docker для рабочего стола Windows. Вы можете загрузить его с официального сайта, из этого ссылка. Пожалуйста, пройдите процесс установки, поскольку он довольно прост, если у вас есть все необходимые условия. Кроме того, не забудьте создать учетную запись на [Docker Hub], используя свой адрес электронной почты. Это можно использовать для отправки изображений в Интернет с общедоступным или частным доступом.


⦿ Создание приложения Spring Boot

Следующим шагом является создание приложения Spring Boot. Вы также можете обновить/отредактировать существующее приложение, включив в него файл dockerfile и выполнить сборку с помощью плагина docker maven. Пример приложения Spring Boot можно клонировать/разветвить по этой ссылке.


⦿ Включить подключаемый модуль Maven Docker

<properties>  
  <java.version>1.8</java.version>  
  <docker.image.prefix>spring-boot-docker</docker.image.prefix>  
  <docker.image.exposed.port>8080</docker.image.exposed.port>  
  <docker.image.dockerfile.dir>${basedir}</docker.image.dockerfile.dir>  
  <docker.image.dockerize.version>v0.6.1</docker.image.dockerize.version>  
  <docker.plugin.version>1.2.0</docker.plugin.version>  
</properties> 

Убедитесь, что ваш maven pom.xml, который будет использоваться для сборки проекта, имеет следующие записи в разделе .

Ниже приведен фрагмент кода [dockerfile-maven-plugin], который нужно добавить в раздел вашего файла maven pom.xml

.

<!-- dockerfile maven plugin -->  
<plugin>  
  <groupId>com.spotify</groupId>  
  <artifactId>dockerfile-maven-plugin</artifactId>  
  <version>1.4.12</version>  
  <configuration>  
    <repository>${docker.image.prefix}/${project.artifactId}</repository>  
    <buildArgs>  
      <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>  
    </buildArgs>  
  </configuration>  
</plugin>  
<!-- dockerfile maven plugin -->  

⦿ Создайте Dockerfile

Типичный файл dockerfile для весеннего загрузочного приложения будет выглядеть так, как показано выше. Он содержит образ jdk, том в контейнере для данных, сгенерированных контейнером, и другие элементы строки для двоичного/jar-файла, а также команду для запуска этого приложения в контейнере.

FROM openjdk:8-jdk-alpine   
VOLUME /tmp  
ARG JAR_FILE  
COPY ${JAR_FILE} spring-boot-docker.jar  
ENTRYPOINT ["java","-jar","/spring-boot-docker.jar"]

⦿ Создать/отправить образ в Docker

Используйте следующие параметры при запуске maven. Плагин — это файл докеров, а цель — сборка. Он создаст образ и отправит его в докер для рабочего стола, работающий через порт 2376.

mvn clean install dockerfile:build  


⦿ Создать/запустить контейнер Docker

docker run -p 9090:8080 -t spring-boot-docker/skp-spring-boot-docker  

Затем перейдите в папку, в которую вы установили [docker]. Рекомендуется включить это в переменную окружения [PATH], если вы собираетесь часто использовать докер. Затем вы можете использовать следующую команду для создания/запуска контейнера Docker.


⦿ Протестируйте приложение Spring Boot

http://localhost:9090/springbootdocker/quote  

Для этого примера приложения вы увидите, что приложения весенней загрузки выводят в браузере следующий вывод!

В следующей части этой статьи основное внимание будет уделено переносу этого на AWS Beanstalk/EC2, чтобы мы могли разверните этот контейнер в облаке AWS.


Ожидайте следующую статью из этой серии под названием «SKP’s SB #02: Чистое завершение работы приложений Spring Boot». «Серия статей SKP SB» полностью основана на Spring Boot, а также на связанных темах, таких как Docker Desktop, таймеры Java, аннотации Spring и чистое завершение работы приложений Spring Boot.

:::информация Также опубликовано здесь.

:::


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE