我不知道您是否已经找到解决方案,但这是我的建议。如果我对您的理解正确,则希望为Web应用程序设置Java
VM选项。另外,您尝试使用自己的版本更改catalina.sh脚本,以便在运行Web应用程序时它包含附加的Java VM选项。
我认为您不必自己更改图像
catalina.sh。脚本catalina.sh查看环境变量。您可以将环境变量CATALINA_OPTS设置为包含此设置。(还有一个环境变量JAVA_OPTS,但是当您还希望将这些Java选项应用于某些其他Tomcat本地进程(例如,根据tomcat文档的stop进程和版本)时,应使用该变量。)
Tomcat的最新版本(9)
catalina.sh明确指出:
Do not set the variables in this script. Instead put them into a scriptsetenv.sh in CATALINA_base/bin to keep your customizations separate.
因此,您可以选择以下两个选项之一:
使用Tomcat的标准Docker映像,仅添加您的Web应用程序,而不添加自定义的catalina.sh。运行此映像的容器时,请将CATALINA_OPTS环境变量设置为的值
-DentityExpansionLimit=100000
。制作一个
setenv.sh
设置CATALINA_OPTS变量的脚本。还要将此脚本添加到构建文件中。版本6catalina.sh
在CATALINA_HOME和CATALINA_base文件夹中查找此脚本,并在存在的情况下执行该脚本。这样的事情(我没有测试)。
#!/bin/sh echo "Setting JVM option Entity Expansion limit for application" export CATALINA_OPTS="-DentityExpansionLimit=100000"
选项2的优点是,您可以将正确的默认JVM选项强制放入映像中,而不是依靠运行映像的人员正确设置环境变量。
那有意义吗?



