首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行对接-组成与远程调试。Intelij,Java 11

运行对接-组成与远程调试。Intelij,Java 11
EN

Stack Overflow用户
提问于 2020-12-29 16:16:51
回答 2查看 3.2K关注 0票数 3

我将指南中的步骤应用到我的项目(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 command: java -Djava.security.egd=file:/dev/./urandom -jar /usr/app/test-app.jar中。单击docker命令附近的调试按钮后,远程配置如下:

代码语言:javascript
复制
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组合运行配置(启动前)选项:

代码语言:javascript
复制
--------------------------------------------------
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

运行我收到的异常配置:Error running 'Remote JVM Debug with compose': Unable to open debugger port (localhost:5005): java.net.ConnectException "Connection refused: connect"

我试图通过将地址更改为*:<port>来解决这个问题。结果的自定义命令是 java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005 -Djava.security.egd=file:/dev/./urandom -jar /usr/app/test-app.jar。然后我得到了例外:Error running 'Remote JVM Debug with compose': Unable to open debugger port (localhost:5005): java.io.IOException "handshake failed - connection prematurally closed"。另外,我试图将端口更改为8080,但结果是一样的。如何解决这一问题,并进行远程配置与对接-撰写(启动前)?演示问题的项目:https://github.com/leonaugust/intelij_docker_problem

Dockerfile

代码语言:javascript
复制
# 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-compose.yml

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

发布于 2020-12-30 07:43:13

Dockerfile尝试中:

ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar","/usr/app/test-app.jar"]

票数 0
EN

Stack Overflow用户

发布于 2021-01-29 14:09:33

Dockerfile中的关键字Dockerfile更改为CMD

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65495253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档