Java 如何调试运行Docker Compose的Glassfish应用程序

Java 如何调试运行Docker Compose的Glassfish应用程序,java,docker,intellij-idea,docker-compose,glassfish,Java,Docker,Intellij Idea,Docker Compose,Glassfish,我有一个在Glassfish上运行的JavaEE应用程序,我有一个在容器中运行的Glassfish,使用Docker和Docker Compose 我想知道是否有可能调试这个运行在Glassfish容器上的应用程序,就像调试Intellij IDEA中的常规Java应用程序一样 我试过一些东西,但对我不起作用 Mydocker compose.yml包括(删除其他私人信息): Dockerfile包括(删除其他无关信息): 在010_entrypoint.sh文件中(删除其他无关信息): 在do

我有一个在Glassfish上运行的JavaEE应用程序,我有一个在容器中运行的Glassfish,使用Docker和Docker Compose

我想知道是否有可能调试这个运行在Glassfish容器上的应用程序,就像调试Intellij IDEA中的常规Java应用程序一样

我试过一些东西,但对我不起作用

My
docker compose.yml
包括(删除其他私人信息):

Dockerfile
包括(删除其他无关信息):

010_entrypoint.sh
文件中(删除其他无关信息):


在docker上运行glassfish服务器就像在远程服务器上运行它一样,所以您必须设置远程调试

您无法确定:

a) 您的Glassfish服务器正在调试模式下运行 b) 您已经在docker上配置了端口9009,以便调试器可以连接到它(您需要在docker-compose.yml中有这样一行:-9009:9009)

然后,您必须配置调试器以连接到localhost:9009


最后,如果您将docker-compose.yml文件共享给docker-compose.yml,您将更容易理解问题所在。

我将编辑我的问题,将我的
docker-compose.yml文件和
docker-compose.yml文件的相关部分包括在内(我必须隐藏任何私人信息,ofc),以供SO社区将来参考,但现在它起作用了!谢谢:D
services:
  glassfish:
    tty: true
    build: glassfish
    ports:
    - "8080:8080"
    - "4848:4848"
    - "80:80"
    - "9009:9009"
EXPOSE 8080 4848 80 9009

COPY 010_entrypoint.sh /docker-entrypoint.d/

ENTRYPOINT /docker-entrypoint.d/010_entrypoint.sh
/opt/glassfish4/glassfish/bin/asadmin start-domain --debug