Tomcat Docker容器:安装为容器webapp目录的主机webapp目录

我试图部署位于我的主机操作系统(Windows 10)的Java Web应用程序,我想将所提到的webapp作为Tomcat Docker Container(位置/usr/local/tomcat/webapps/mywebapp )下的一个目录进行安装。

我在Dockerterminal中运行以下命令(在Windows中是我的webapp的绝对path)。 注意:“mywebapp”主机目录已经包含已部署/未压缩的war。

docker run --name=tomcat_7_0_78 --detach --publish 8080:8080 -v /c/desarrollo/workspace/webMavenTest/target/mywebapp:/usr/local/tomcat/webapps/mywebapp tomcat:7.0.78

我可以看到,Tomcat启动,webapps容器文件夹里面有几个默认的webapps,包括“mywebapp”文件夹。 问题是它是空的,所以Web应用程序不工作。

我想用它来将我的应用程序集成到Eclipse IDE中,并通过IDE来实现重新部署应用程序。

任何见解?

提前致谢。

如果您想要热部署每个文件更改,则无法使用远程应用程序服务器执行此操作。 原因是eclipse没有控制tomcat进程来做这件事。

现在一个可能的解决方法是生成一个web应用程序,该应用程序生成一个卷到可交付的副本,以便在做出更改后,您可以构build应用程序,然后tomcat再次进行安装。

它应该是这样的:

 docker run --name = tomcat_7_0_78 --detach --publish 8080: 8080 -v /path/to/copy/war/app.war:/usr/local/tomcat/webapps/app.war tomcat: 7.0.78 

在你的主机上,你必须把你的项目之外的“战争”复制到你的应用程序的目标。 这是必要的,因为当maven删除目标文件夹时,docker卷将被取消并且不会再次刷新。

使用执行保存操作钩子的插件自动执行部署:

如何在Eclipse中保存Maven“编译”目标?

我不推荐它,因为你一直在运行maven,而且它消耗了大量的CPU。 也许写一个本地脚本来做到这一点。

谢谢你的时间和你的回答,非常有帮助,我真的很感激它。

我期望一个更简单的方法来整合这个,但似乎没有直接的解决scheme。

顺便说一句,我已经find了为什么Tomcat Docker容器中的webapp目录总是空的,似乎我的webapp主机path(Windows)必须位于我的用户目录下,例如/ c / users / username / documents / …… / eclipseWorkspace / mywebappProject /目标/ mywebapp。

目前,我认为我将启用远程debugging,所以每当我修改一个Java类时,我都会进行热代码replace,以后再看看其他types的文件可以做什么。

关于maven删除目标文件夹时提到的问题,我已经检查过,如果我从Eclipse运行一个maven clean(如你所说),webapp被取消了,但是如果我做了一个maven安装,它会再次出现在Tomcat Docker容器中,所以也许不是那么糟糕。