我需要在嵌入式解决方案中部署我的应用程序(在rapiberry pi零上运行)。因此,我只能在localhost上部署东西。我对虚拟主机不太熟悉,因此我对此可能是错的。
我的问题是,我希望tomcat自动部署克隆到树莓派git仓库中的war文件。这样一来,可以轻松地在git存储库上进行更新,而不必与管理器打交道。话虽如此,我还希望使默认Webapps目录中包含的管理器和其他管理工具保持活动和运行状态。我不想将它们复制到git存储库中,因为它们将被放错位置并保存在存储库中,这是不必要的。此外,我想让tomcat“分解”或提取原始webapps目录中的WAR文件,以免将这些文件添加到git存储库中。
基本上,我希望能够自动部署某个目录中的所有war文件,而无需实际写入该目录,同时还能自动部署“标准” webapps目录中的war文件。
这可能吗?
我正在使用tomcat9
解决方案A:
Tomcat 9仅具有一个appBase属性,默认情况下为webapps
。为了更改,您需要配置2 Common attributes:
1.appBase:将此参数设置为需要部署战争的文件夹。2.autoDeploy:确保将其设置为true。
不可能有2个appbase目录。因此,原始的Web应用程序将无法用于自动部署。
解决方案B:
使用脚本从GIT存储库中提取WAR,这还将把文件复制或移动到Tomcat9的标准webapps文件夹中。例如
git pull rm path/to/tomcat/webapps/warname.war
mv warname.war
path/to/tomcat/webapps
解决方案C:
将您的GIT存储库或其他GIT存储库配置为仅包含具有所需战争的webapps文件夹。如果仅使用此文件夹从GIT存储库中拉开战幕,则无需提交默认的Tomcat应用程序。请参阅以下步骤。从vanilla
Tomcat 9安装开始
将webapps
重命名为webappsOriginal
克隆webapps
信息库,以便现在创建另一个webapps
文件夹,仅包含war。
将webappsOriginal
的所有内容移动到webapps
。
删除webappsOriginal
现在,如果您从存储库中提取更新的战争,将自动进行部署。没有理由在您的GIT中添加,提交或推送现有文件。