我有一个docker容器 - Tomcat应用程序(war文件),它的静态内容包含在war文件中。但是为了开发目的,我想将静态内容移出war文件并将其映射到文件系统上的文件夹。这样做的原因很简单。例如,我不希望每次改变javascript文件时重新部署。我想在浏览器中重新加载页面,并将所做的更改提取出来。 Tomcat的版本是8如何在Tomcat上以root身份部署战争之外的静态内容8
最常见的解决了这个问题(如果你google一下)是改变server.xml文件和类似的片段添加到此之一:
<Context docBase="/my/static/content/folder" path="/some/context" />
不过,我想将静态内容映射到我的应用程序的根文件夹。说我的战争文件名是myapp.war。它被部署在“/ myapp”下。问题是,如果我想添加静态内容从根开始,然后我的上下文片段看起来是这样的:
<Context docBase="/my/static/content/folder" path="/myapp" />
这是不正确,因为该路径必须是唯一的,“MYAPP”不能既使用 - 自动部署使用war文件名来派生上下文以及上面的上下文片段。我可以改变路径来指向“myapp/static”,但是我需要将更改应用到我想要避免的源代码。
想法如何将外部文件夹映射到我的应用程序根目录是非常值得欢迎的。
你为什么不用另一个码头图像创建一个例如nginx httpd,提供来自该映像的开发静态内容并将nginx配置为您的tomcat docker映像的反向代理? – saw303
目前我宁愿保持设置尽可能简单。我也可以使用Apache Web服务器来提供静态内容,但我暂时不想再引入其他服务器。感谢提示。 – Flexer