【问题标题】:Debugging spring-boot app in docker doesn't work在 docker 中调试 spring-boot 应用程序不起作用
【发布时间】: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


【解决方案1】:

配置对我来说看起来不错。如果调试器连接正确,请检查您的断点是否在 IntelliJ 中启用。 我假设问题出在 IntelliJ 中,而不是您的 docker 配置中。

如果仍然无法运行,您能否提供运行配置?

【讨论】:

  • 我检查并启用了断点。运行配置是什么意思?我只是运行 docker-compose.yml 来创建容器和 mvn clean install 来创建 jar
  • 可以在IntelliJ的“运行”->“编辑配置”下找到“运行配置”。在那里你应该有一个远程调试的条目。配置应该指向 localhost:5050
  • 啊,是的,我现在明白了。所以有Debugger mode: Attach to remote JVMHost: localhostPort: 5050Command line arguments for remote JVM: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5050
  • 好消息:这似乎没问题。坏消息:这并不能解决您的问题。
  • 知道问题是什么会很有趣,但至少你的问题已经解决了。
【解决方案2】:

您可能需要在地址参数中添加 0.0.0.0 或 *

  • 地址=0.0.0.0:5050
  • 地址=*:5050

【讨论】:

    【解决方案3】:

    您能否使用“ps”命令确认容器中运行着一个进程实例,并且应用了调试参数?

    在尝试使用 Docker 中的 Adob​​e Experience Manager (AEM) 进行调试时,我一直在努力解决完全相同的问题。如果没有足够的可用内存,AEM 会自动分叉该进程,但不会将调试参数应用于新进程。

    在这种情况下,解决方案是应用“-forkargs”参数,以便将调试配置传递给分叉进程。完成此操作后,断点现在可以正确挂起线程。

    这个解决方案几乎肯定不会在你的情况下工作,但你可以通过检查进程是否在没有参数的情况下分叉来验证它是否是一个类似的问题。

    【讨论】:

      猜你喜欢
      • 2018-03-15
      • 2021-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-18
      • 1970-01-01
      • 2017-04-23
      相关资源
      最近更新 更多