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

时间:2019-01-24 09:31:25

标签: java docker intellij-idea docker-compose glassfish

我有一个在Glassfish上运行的Java EE应用程序,并且我有一个使用Docker和Docker Compose在容器中运行的Glassfish。

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

我尝试了一些like this,但是它对我没有用。

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

services:
  glassfish:
    tty: true
    build: glassfish
    ports:
    - "8080:8080"
    - "4848:4848"
    - "80:80"
    - "9009:9009"

Dockerfile包括(删除其他不相关的信息):

EXPOSE 8080 4848 80 9009

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

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

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

/opt/glassfish4/glassfish/bin/asadmin start-domain --debug

1 个答案:

答案 0 :(得分:1)

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

您不确定:

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

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

最后,如果您将dockerfile共享给docker-compose.yml,将更容易理解出了什么问题。