最近几天我花了很多时间挖掘码头。我对开发中的环境可能与生产环境相同的可能性印象深刻!
目前我想从小处着手,开始加强开发过程。我们正在开发部署在tomcat上的Java应用程序。开发人员正在使用Eclipse和IntelliJ等IDE。
在开发期间,您可以在IDE中配置tomcat环境,以便自动部署和调试代码。因此,必须可以设置tomcat基目录。
目前我有一个docker debian映像,并在/ opt / tomcat上安装了tomcat。
我现在希望能够将容器/ opt / tomcat目录的内容链接到主机中的目录。 可悲的是,这个功能似乎并不存在。使用-v选项,您只能在容器中安装主机目录,而不是相反。
目前我看到的唯一解决方案是挂载容器的webapps目录并将我的war文件放在这里,这在我看来非常没有效果。
您必须手动启动/重启tomcat,只能进行远程调试,您的IDE控制台中没有日志。
那么,有没有人有任何想法使用docker优化Java Webapp开发的开发工作流程?
答案 0 :(得分:2)
我看到一个blog正在谈论doclipser(Eclipse + Docker)。
在博客中,主要是在帖子的底部,它提到了以下工具:
希望这会有所帮助:)
答案 1 :(得分:1)
您可能必须在同一个容器中运行Eclipse和Tomcat,但我肯定会尝试让它们首先在两个单独的容器中运行。也许从这个base image开始,尝试使用共享卷将其链接到Tomcat图像。
答案 2 :(得分:-1)
如果我正确理解您的问题,为什么不使用-v
选项来装载war文件本身。使用wildfly对我来说没问题。
基本上,我使用maven来构建战争并将target/myapp.war
映射到/opt/wildfly/myapp.war
。然后,每当我在应用程序中进行更改时,我只需运行mvn clean package和app容器,看到战争已经改变,重新部署。
现在,这是利用wildfly的部署扫描程序,但也可能适用于tomcat。如果没有,也许您可以使用爆炸战运行tomcat,然后将构建文件夹target / myapp挂载到tomcat上的webapps文件夹中。