当前位置: 首页 > 知识库问答 >
问题:

使用远程调试运行docker compose。英特利杰,爪哇11

牛枫
2023-03-14

我将指南中的步骤应用到我的项目中(https://www.jetbrains.com/help/idea/run-and-debug-a-spring-boot-application-using-docker-compose.html)。总结一下,我将这一行添加到Dockerfile-Djava.security.egd=file:/dev/./urandom和命令到docker-compose命令:java-Djava.security.egd=file:/dev/./urandom-jar /usr/app/test-app.jar。在docker-compose点击命令附近的调试按钮后,远程配置为:

Debugger mode: Attach to remote JVM
Transport: Socket
Host: localhost
Port: 5005
Command line arguments for remote JVM: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005;

Docker Compose运行配置(启动前)选项:

--------------------------------------------------
Port               | Local port | Container port |
-------------------------------------------------|
Java Debugger port | 5005       | 5005           |
--------------------------------------------------

Custom command: java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 -Djava.security.egd=file:/dev/./urandom -jar /usr/app/test-app.jar
Custom options: -p 5005:5005

运行我收到的配置异常:运行'Remote JVM Debug with compose'时出错:无法打开调试器端口(localhost:5005):java.net.ConnectException"Connection: connect"

我试图通过将地址更改为*:

文档文件

# Build stage
FROM maven:3.6.0-jdk-11-slim AS build
COPY src /usr/src/app/src
COPY pom.xml /usr/src/app
RUN mvn -f /usr/src/app/pom.xml clean package -DskipTests

# Run stage
FROM adoptopenjdk/openjdk11:alpine-jre
COPY --from=build /usr/src/app/target/test-app.jar /usr/app/test-app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar", "-Djava.security.egd=file:/dev/./urandom","/usr/app/test-app.jar"]

docker撰写。yml

version: '3.1'
services:

  test-app:
    build: .
    container_name: test-app
    image: test-app

    ports:
      - 8080:8080
    command: java -Djava.security.egd=file:/dev/./urandom -jar /usr/app/test-app.jar

共有2个答案

宋子辰
2023-03-14

Dockerfile中的关键字ENTRYPOINT更改为CMD

闾丘永春
2023-03-14

Dockerfile中尝试:

ENTRYPOINT[“java”、“-Djava.security.egd=file:/dev//uradom”、“-jar”、“/usr/app/test app.jar”]

 类似资料:
  • 第一张图片 第二图像 当我附上两张图片时,我在运行用groovy编写的spring boot gradle项目时遇到了问题。 我一打开项目,intellij就试图构建项目,但失败了,它说Gradle Sync失败了。 因为它在jdk设置中抱怨java home,所以我试图像我的intellij所期望的那样更改路径。但是一旦我更改它,它就告诉我它找不到android sdk位置。我不知道它为什么关心

  • 我已经在网站上看到了“解决方案”http://www.rgagnon.com/javadetails/java-0506.html,但它不能正常工作。昨天(六月八日)应该是159,但它说是245。 那么,有没有人用Java解决方案来获取当前日期的三位数朱利安日(不是朱利安日——我需要今年的日期)? 谢谢!马克

  • 使用远程调试 为了与qemu配合进行源代码级别的调试,需要先让qemu进入等待gdb调试器的接入并且还不能让qemu中的CPU执行,因此启动qemu的时候,我们需要使用参数-S –s这两个参数来做到这一点。在使用了前面提到的参数启动qemu之后,qemu中的CPU并不会马上开始执行,这时我们启动gdb,然后在gdb命令行界面下,使用下面的命令连接到qemu: (gdb) target remot

  • 我想使用MinGW DebugServer.exe从我的笔记本电脑调试正在开发计算机(作为远程计算机)上运行的进程。但我遇到了一个问题“创建进程”D:\RemotedBG\xxx.exe时出错“,(错误50):请求不受支持”。我使用Visual Studio2013构建了xxx.exe,并尝试使用MinGW GDBServer进行远程调试。 如果这是不可行的,你可以推荐我任何方法做远程调试在Win

  • 我正在尝试编写一个程序来实现对埃拉托西的筛选。我可以从2到任何给定的结束编号,但我们正在处理的赋值要求我们输入起始值。我完全被卡住了。我试过很多不同的代码,但它总是给我奇怪的答案。 我的起点是起始值,终点是结束值。我基本上想找到这个范围的素数。谢谢!!!

  • 问题内容: 我有这个Java代码段。我是Java的菜鸟。 错误: 码: 问题答案: 是的,这是问题所在: 在课程的最高级别,您只能拥有: 实例初始化程序块() 静态初始值设定块() 变量声明 构造函数声明 方法声明 嵌套类型声明 终结器声明 这些都不是。如果你 的意思 来声明一个变量,你应该这样做: 如果这 不是 您想要的,则应解释您的意图。 编辑:修复此问题后,此编译器错误似乎很明显: Conf