У меня есть приложение Spring Boot, запущенное в контейнере Docker, которое настроено с использованием Dockerfile, а затем файла docker-compose.yml.Я недавно добавил в команду Java -agentlib:jdwp=transport=dt_socket,address=5050,server=y,suspend=n
в Dockerfile, чтобы включить отладку.Я выставил порт 5050 и также отобразил его в файле docker-compose.Когда я запускаю приложение в контейнере, я начинаю отладку через IntelliJ, и он соединяется, но если я устанавливаю точку останова, он никогда не срабатывает.Теперь я не уверен, что я делаю неправильно, поскольку удаленный отладчик подключается.Я даже попытался изменить настройку suspend=y
, и это сработало, т. Е. Сервер не запустился, пока я не запустил отладчик.
Вот соответствующая работа, которую я проделал;
Dockerfile
FROM openjdk:8-alpine
WORKDIR /
EXPOSE 8000 5050
COPY target /
CMD java -agentlib:jdwp=transport=dt_socket,address=5050,server=y,suspend=n -jar /target/blockchain*.jar
docker-compose.yml
multichain-api:
build:
context: ./blockchain
networks:
- multichain-network
ports:
- "8000:8000"
- "5050:5050"
volumes:
- type: bind
source: ${PWD}/blockchain/target
target: /target
container_name: multichain-api
Есть идеи, где я ошибся?