【发布时间】:2019-03-14 03:00:55
【问题描述】:
我有一个在 docker 容器中运行的 Spring Boot 应用程序,该应用程序使用 Dockerfile 和 docker-compose.yml 文件进行设置。我最近在 Dockerfile 中添加了 Java 命令-agentlib:jdwp=transport=dt_socket,address=5050,server=y,suspend=n 以启用调试。我已经暴露了端口 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
关于我哪里出错的任何想法?
【问题讨论】:
-
这个问题及其答案真的帮助了我。谢谢。
标签: docker spring-boot docker-compose remote-debugging