Приветствую вас после долгого перерыва 😄, наконец-то у меня появилось время объяснить, как докеризовать приложение 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
для создания .jar
file. Потому что 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 и добавить название книги, которую вы хотите удалить, в конец ссылки.
Ресурсы
- Https://spring.io/
- Https://docs.docker.com/
- Бесплатные курсы Spring Boot для начинающих
- Бесплатные курсы Docker для начинающих
Примечание. В этом руководстве основное внимание уделяется простому закреплению приложения Spring Boot.