我在这样的docker容器中运行tomcat
FROM myregistry/cfw-deploy-base
COPY ./my.war /opt/tomcat/webapps/
ENV JAVA_OPTS=""
CMD ["/opt/tomcat/bin/catalina.sh", "run"]
但是,上下文路径是根据war文件名设置的(在这种情况下为my
)
我想从容器内配置的环境变量设置上下文路径。
我可以在使用catalina.sh
时设置它吗?
答案 0 :(得分:0)
最简单的方法是将* .war文件复制到具有所需名称的webapps文件夹。通过修改行:
可以很容易地完成COPY ./my.war /opt/tomcat/webapps/
到
COPY ./my.war /opt/tomcat/webapps/myContext.war
此更改会使您的应用在<server>:<port>/myContext
路径下可用。如果您希望在环境变量下指定上下文路径,则可以将脚本修改为:
ENV MY_CONTEXT=contextName
COPY ./my.war /opt/tomcat/webapps/${MY_CONTEXT}.war
使用Tomcat显式设置应用程序上下文可以通过以下步骤完成:
转到您的应用程序META-INF文件夹(在您的情况下:/ opt / tomcat / webapps / my / META-INF)
创建XML文件:context.xml
并粘贴此内容:
<?xml version="1.0" encoding="UTF-8"?> <Context antiJARLocking="true" path="/myContext"/>
通过一些努力,您应该能够在Dockerfile中自动执行这些步骤。