Развёртывание API Spring Boot 3.0 с использованием Jenkins Pipeline и Docker
В этой статье мы объясним, как развернуть Spring boot-приложение с помощью Jenkins Pipeline и Docker шаг за шагом.
Необходимая утилита
Вот список всех необходимых инструментов:
- Spring Boot 3
- Maven 3.6.+
- Java 17
- A GitHub repository
- Git
- Установленный Jenkins
- Установленный Docker
- Установленный Docker compose
- PostgreSQL
- Postman / insomnia или любой другой инструмент тестирования API
Настройка Spring Boot
Предположим, у нас уже есть простой Spring Boot Rest API, предоставляющий некоторую информацию о книгах. Приложение подключено к базе данных PostgreSQL.
Структура проекта
Вот структура нашего проекта:
Вот такой результат будет у нас при попытке получить список книг:
Контейнеризация приложения
1. Dockerfile
Чтобы создать образ контейнера с помощью Docker, нам нужно будет использовать файл Dockerfile. Dockerfile - это текстовый файл без расширения, содержащий скрипт с инструкциями. Docker использует этот скрипт для создания образа контейнера. Файл должен быть создан в корневом каталоге проекта.
2. Docker compose
Docker Compose - это инструмент, разработанный для того, чтобы помочь определять многоконтейнерные приложения и совместно использовать их. С помощью Compose мы можем создать файл YAML для определения сервисов и с помощью одной команды развернуть всё, что в нём находится.
В этом случае нам нужно создать 2 контейнера (базу данных и API-приложение). В корневой папке проекта создайте файл с именем docker-compose.yml
3. Использование Jenkinsfile
Jenkinsfile - это текстовый файл, который содержит определение Jenkins Pipeline и проверяется в системе управления версиями. Давайте создадим новый Jenkinsfile в корневом каталоге проекта, который реализует базовый трёхступенчатый конвейер непрерывной доставки.
Github
Как только мы завершим все предыдущие настройки, нам нужно поместить весь исходный код в наш репозиторий GitHub.
Если у вас есть частный репозиторий, вы должны предоставить личный маркер доступа в GitHub для использования в Jenkins.
Новая ссылка на репозиторий для Jenkins будет выглядеть следующим образом:
https://access_token@github.com //yourRepoName.git
Настройка Jenkins
1. Установите плагины для интеграции с Maven Pipeline
Панель управления Jenkins> Управление Jenkins -> Управление плагинами
Найдите “maven” в разделе “Доступно” и выберите "Установить без перезагрузки".
2. Добавьте глобальную конфигурацию инструмента
Панель инструментов Jenkins> Управление Jenkins -> Глобальная конфигурация инструмента
3. Развёртывание стека
> Создать новый элемент
> Конфигурация конвейера
- В поле "Определение" выберите опцию Pipeline script from SCM: При выборе опции Pipeline script from SCM вы не вводите никакой Groovy-код в пользовательский интерфейс Jenkins; вы просто указываете путь, из которого в исходном коде вы хотите извлечь конвейер.
- В поле "SCM" выберите тип системы управления версиями репозитория, содержащего ваш файл Jenkins. Выберите опцию Git.
- URL-адрес репозитория Git в поле "URL репозитория", где мы сохранили ваш скрипт конвейера (Для этой истории хранилище является общедоступным. Здесь не нужен личный доступ).
- Название ветви репозитория Git в поле "Спецификатор ветви".
Не забудьте сохранить изменения!
Всё готово! Ваш конвейер создан!
Запуск Jenkins Pipeline
Нажмите на опцию Build Now, чтобы запустить Jenkins Pipeline. Мы можем видеть все этапы, которые были описаны в файле конвейера:
После успешной сборки конвейера мы можем проверить контейнеры с помощью команды Docker docker ps:
У вас получилось выполнить развёртывание! Мои поздравления!
Заключение
В этой статье мы рассмотрели, как шаг за шагом развернуть приложение Spring boot с использованием Jenkins Pipeline и Docker.
Полный исходный код доступен на GitHub.
Спасибо за чтение!
Источники
Статья была взята из этого источника:
Ок, а что это?)
Где используется ?