【发布时间】:2015-03-05 01:11:18
【问题描述】:
最近几天我花了很多时间研究 docker。我对在开发中拥有与生产环境相同的环境印象深刻!
目前我想从小处着手,开始加强开发过程。我们正在开发部署在 tomcat 上的 Java 应用程序。开发人员正在使用 Eclipse 和 IntelliJ 等 IDE。
在开发过程中,您可以在 IDE 中配置您的 tomcat 环境,以便您可以自动部署和调试代码。因此,tomcat 基本目录必须可供设置。
目前我有一个 docker debian 镜像,tomcat 安装在 /opt/tomcat 上。
我现在希望能够将容器 /opt/tomcat 目录的内容链接到我主机中的目录。 可悲的是,该功能似乎不存在。使用 -v 选项,您只能在容器内挂载主机目录,反之则不行。
目前我看到的唯一解决方案是挂载容器的 webapps 目录,然后将我的 war 文件放在这里,在我看来这非常不高效。
您必须手动启动/重新启动您的 tomcat,只能进行远程调试,您的 IDE 控制台中没有日志。
那么,有人对使用 docker 优化 Java Webapp 开发的开发流程有任何想法吗?
【问题讨论】:
-
这看起来仍然没有真正的解决方案。我知道 docker 非常适合隔离环境,但我真的希望我们可以使用本地 IDE 调试器,而不是在本地 docker 容器上开发时使用远程调试器。我不想每次更改 jsp 或某些 java 类时都必须坐在那里重新部署我的应用程序,这是低效的。
-
我完全支持你。我想在我的 IDE 中配置我的运行时环境,并将日志发送到我的控制台,而无需手动打包软件。
-
根据我的经验,运行 docker + tomcat 设置的最简单方法是使用嵌入式 tomcat。因此,您无需运行 tomcat 并部署 war 文件,而是创建一个包含 tomcat 并运行它的 far jar。主要好处是:您在开发和生产中调试/运行相同的设置,并且非常容易创建 docker 映像。我将 spring-boot 用于样板文件,但这是可选的。它也可以用 maven 来实现。您对这样的设置感兴趣吗?
-
我为此编写了 Docker Shell - dockershell.io。不幸的是,它还不支持运行 X 应用程序,所以你仍然被远程调试所困。
-
可以添加有问题的环境信息吗?您的 IDE 主机是什么? Mac/Windows 或 Linux ,它将对解决方案产生很大影响。如果是windows我可以给出解决方案
标签: java eclipse tomcat web-applications docker