Рубрики
Без рубрики

Отладка приложения Spring Boot в Docker

В связи с развитием контейнерных приложений настройка локальной среды теперь проще, чем… С тегами для начинающих, докер, весна, java.

В связи с развитием контейнерных приложений настройка локальной среды теперь проще, чем когда-либо. Время настройки может быть сокращено с нескольких часов до нескольких минут. Экономия времени и разочарований разработчиков.

При настройке одного из моих приложений для запуска с помощью Docker. Я понял, что там не было никаких руководств, которые подходили бы моему вкусу для запуска приложений с включенной отладкой через docker.

В этой статье я расскажу о том, что я сделал, чтобы настроить приложение с помощью отладки с помощью docker-compose. Вы можете просмотреть полный пример здесь .

Сначала я создал файл Dockerfile:

FROM  openjdk:9-jre # Specifying the base image, I'm using Java 9
ADD target/dublin_rest_demo.jar . # Copies the compiled jar file to the root of the container -- DOUBLE CHECK THIS. 
EXPOSE 8080 8000 # Sets up ports the container listens on: 8080 (spring boots default) and 8000 (debugger port)
CMD java -jar dublin_rest_demo.jar # Specifies the command that will start up the application.

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

mvn clean install && docker build -t rest_demo:latest . && docker run -p 8080:8080 -p 8000:8000

Затем я настраиваю свой файл docker-compose yml:

version: '3.7'
services:
  web:
    build: .
    ports:
      - "8080:8080" # Mapping the internal container ports to the external ones.
      - "8000:8000"

Затем я запустил это, чтобы убедиться, что все работает нормально.

docker-compose up

Затем я попытался настроить его для запуска с включенной отладкой. Наконец-то я получил команду добавить в файл docker-compose, который запустил приложение с включенной отладкой.

version: '3.7'
services:
  web:
    build: .
    ports:
      - "8080:8080"
      - "8000:8000"
    command: java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000 -jar dublin_rest_demo.jar

Так как я не всегда запускаю свое приложение в режиме отладки. Обычно я создаю второй файл и называю его docker-compose-debug.yml. Затем запустите этот файл компоновки, используя флаг “-f”:

docker-compose -f docker-compose-debug.yml up

И это было все, я был на пути к отладке своего приложения!

Чтобы подтвердить, что это действительно было правильно настроено. Я настраиваю удаленную конфигурацию в IntelliJ:

Затем я запустил свой файл docker-compose-debug:

Наконец, я установил точку останова и нажал на нее:

И вот оно, мы запускаем наше приложение через docker-compose с включенной отладкой.

Оригинал: “https://dev.to/danondso/debugging-a-spring-boot-app-in-docker-kgd”