爆炸前更新tomcat war文件(未压缩)



我的应用程序WAR已经有了一些设置。在部署到tomcat容器之前,我想在飞行中更改它们。现在我将它们部署在/Catalina_base/中,启动tomcat应用程序,一旦WAR被解压缩,我就会更新conf文件并重新启动tomcat。有没有在启动tomcat之前更新conf文件的最佳实践?

此外,我如何使用厨师食谱来实现这一点?

非常感谢您的帮助。

正如Chris Nauroth的评论所说,最佳实践是将特定于环境的配置排除在WAR之外。

但是,如果您被WAR中的配置所困扰,那么您可以使用zip工具来更新配置文件。

如果您使用的是典型的Linux发行版,那么假设您的WAR文件名为application.war,并且要更新的配置文件为WEB-INF/classes/com/example/config.properties,那么您可以在部署期间运行这些命令,然后再启动Tomcat:

unzip application.war WEB-INF/classes/com/example/config.properties
# edit the configuration file now
zip -f -m application.war WEB-INF/classes/com/example/config.properties

解压缩命令之后,文件将位于与其在WAR中的位置相匹配的子文件夹中(例如WEB-INF/classes/com/example/config.properties),然后第二个zip命令将从磁盘中删除文件并将其放回WAR中。

我不熟悉Chef,所以我不知道如何作为部署的一部分自动运行这些命令,但据推测,它提供了一种像这样直接运行命令的方法。

最新更新