В связи с развитием контейнерных приложений настройка локальной среды теперь проще, чем когда-либо. Время настройки может быть сокращено с нескольких часов до нескольких минут. Экономия времени и разочарований разработчиков.
При настройке одного из моих приложений для запуска с помощью 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”