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

Как вы знаете, я первым написал эту статью: Краткая информация о Docker. Лучше сначала прочитать эту статью, потому что она содержит краткую информацию, которую должен знать каждый разработчик 💻.

Как только вы прочтете предыдущий пост, вы будете готовы научиться использовать Docker с Spring Boot.

С этого момента я предполагаю, что вы установили Docker на свой компьютер.

В этом руководстве я расскажу вам, как использовать Docker с Spring Boot, и приведу пример использования Spring Boot и Docker.

  • Здесь используются проекты Spring Boot и Spring Data, которые используются для разработки REST API.
  • Maven используется для автоматизации процесса сборки.
  • Используется типичный подход к разработке на основе предметной области, разделяющий классы модели, репозитория, службы и контроллера.

Вы можете скачать исходный код проекта по этой ссылке GitHub.

Технологии и инструменты

Информационная система библиотеки, разработанная в этом руководстве, докерирована в этом посте. Для получения более подробной информации об этом проекте вы можете нажать эту ссылку.

В руководстве используются IntelliJ IDEA, Maven и Docker. Я работаю на Windows 10 с помощью PowerShell.

Все программное обеспечение написано на Java, с Spring 5.2 и Spring Boot 2.2.2, для сохранения используется база данных H2 в памяти.

Отсюда я предполагаю, что у вас установлены JDK 13.0, IntelliJ, Maven и Docker.

Моя цель здесь - показать, как использовать Docker простым способом без перетасовки бизнес-логики.

Приложение Spring Boot можно докеризовать с помощью двух наиболее часто используемых подходов.

  • Dockerfile: он содержит собственные команды Docker для создания образа.
  • Maven: в нем есть плагин для создания образа.

Докеризация с использованием Dockerfile

«Dockerfile - это текстовый документ, содержащий все команды, которые пользователь может вызвать в командной строке для сборки изображения». Пользователь может писать команды для создания образа в Dockerfile.

Наш образец Dockerfile показан ниже.

У OurDockerfile четыре команды. 4️⃣

  • Команда FROM используется для установки базового образа. В нашем Dockerfile этоopenjdk:13-jdk-alpine.
  • Команда ARG используется для передачи определенной переменной во время сборки построителю. В данном случае это наш .jar файл.
  • Команда COPY копирует указанный файл в образ. В этом случае. наш созданный файл .jar будет скопирован в базовый образ.
  • ENTRYPOINT используется для выполнения приложения внутри контейнера.

После подготовки Dockerfile следует запустить команду maven package для создания .jarfile. Потому что Dockerfile нужен этот .jar файл при запуске. 💻

После того, как все сделано, вы можете запускать или отлаживать приложение, используя Dockerfile в IntelliJ. Я использовал IntelliJ, но при желании вы можете выполнить эти шаги вручную. Для этого следует использовать команды docker build и docker run. Вы можете нажать эту ссылку для получения дополнительной информации.

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

Докеризация с Maven

Приложение Spring Boot также можно докеризовать с помощью Maven. Есть несколько плагинов для докеризации приложения.

Один из них - плагин Spotify. 🎵 Для этого поста используется этот плагин. Вы можете увидеть конфигурацию нашего плагина Maven ниже. Этот плагин следует добавить между <build> </build> тегами.

Как видите, используются теги <baseImage> и <entryPoint>. Эти теги имеют то же назначение, что и FROM и ENTRYPOINTкоманды Dockerfile соответственно.

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

mvn clean package docker:build

Теперь созданный образ докера можно показать с помощью команды ниже.

После этого вы должны использовать команду docker run ... для запуска этого образа.

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

Тестирование с почтальоном

Вы можете легко запустить этот проект на тестирование REST-сервиса.

Конечно, вы должны запустить созданные образы докеров для тестирования службы REST. 😃

Если вы хотите добавить книгу в информационную систему библиотеки, вы можете использовать data.json в корне проекта.

После запуска проекта вы можете протестировать службу REST. Для этого откройте Почтальон, введите URL-адрес и выберите метод GET, как показано ниже.

Снова введите ссылку с названием книги в базу данных.

Вы можете добавить книгу в систему с помощью метода POST в Postman. Сначала вы должны ввести пару "ключ-значение" заголовка Content-Type: application / json. Во-вторых, во вкладке body вы должны ввести информацию о книге, которую вы хотите сохранить в базе данных в формате JSON.

Если вы хотите удалить книгу, вам следует выбрать метод УДАЛИТЬ в Postman и добавить название книги, которую вы хотите удалить, в конец ссылки.

Ресурсы

Примечание. В этом руководстве основное внимание уделяется простому закреплению приложения Spring Boot.