Как Dockerize весеннее загрузочное приложение с помощью maven

Опубликовано: 24 Января, 2023

Docker — это платформа контейнеризации с открытым исходным кодом, используемая для создания, запуска и управления приложениями в изолированной среде. Контейнер изолирован от другого и объединяет его программное обеспечение, библиотеки и файлы конфигурации. В этой статье мы обсудим, как докеризировать приложение Spring Boot для целей развертывания.

Предварительные требования: прежде чем продолжить, убедитесь, что на вашем компьютере установлены узел и докер. При необходимости посетите руководство по установке Java или руководство по установке Docker.

Настройка весеннего загрузочного приложения

Шаг 1: Создайте каркас приложения, используя https://start.spring.io.

Шаг 2: Теперь создайте проект maven со следующей конфигурацией. После ввода всех данных нажмите кнопку «СОЗДАТЬ», чтобы загрузить проект.

Шаг 3: Извлеките заархивированный файл и откройте его в любой IDE по вашему выбору.

Шаг 4: Откройте базовый java-файл проекта и добавьте новый контроллер в базовый класс приложения.

@RequestMapping("/")
public String home() {
    return "Dockerizing Spring Boot Application";
}

Шаг 5: Теперь добавьте аннотацию RestController и импортируйте необходимые пакеты. В итоге ваш файл Application.java должен выглядеть так.

Java




package com.docker.spring;
  
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
  
@SpringBootApplication
@RestController
public class Application {
  
    @RequestMapping("/")
    public String home() {
        return "Dockerizing Spring Boot Application";
    }
  
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
  
}

Шаг 6. Теперь запустите приложение, выполнив следующие действия.

$ ./mvnw spring-boot:run

Шаг 7. Перейдите по адресу http://localhost:8080, чтобы протестировать приложение.

Структура проекта: Вот как должна выглядеть структура проекта на данный момент:

Докеризация нашего приложения

Теперь создайте новый файл jar с помощью maven builder.

$ ./mvnw clean package

В корне нашего проекта создайте новый Dockerfile.

$ touch Dockerfile

Вставьте следующее в Dockerfile

# Fetching latest version of Java
FROM openjdk:18
 
# Setting up work directory
WORKDIR /app

# Copy the jar file into our app
COPY ./target/spring-0.0.1-SNAPSHOT.jar /app

# Exposing port 8080
EXPOSE 8080

# Starting the application
CMD ["java", "-jar", "spring-0.0.1-SNAPSHOT.jar"]

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

$ docker build -t [name:tag] .
  • -t: имя и тег для изображения
  • . : контекст процесса сборки.

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

Создайте контейнер докеров, запустив

$ docker run -d -p [host_port]:[container_port] –name [container_name] [image_id/image_tag]

  • -d: запустить контейнер во время печати идентификатора контейнера.
  • -p: сопоставление порта для нашего контейнера
  • --name: присвоить имя контейнеру

Убедитесь, что контейнер был успешно создан, запустив

$ docker container ps

Структура проекта: вот как должна выглядеть структура проекта на данный момент.

Перейдите по адресу http://localhost:8080/ в браузере, чтобы просмотреть приложение весенней загрузки.

Примечание. Пожалуйста, обратитесь к Dockerfile, используемому в этом руководстве, если у вас возникли трудности с выполнением вышеуказанных шагов.