在docker容器中启动时为tomcat设置服务器上下文路径

时间:2018-04-13 05:08:38

标签: docker tomcat8 catalina

我在这样的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时设置它吗?

1 个答案:

答案 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显式设置应用程序上下文可以通过以下步骤完成:

  1. 转到您的应用程序META-INF文件夹(在您的情况下:/ opt / tomcat / webapps / my / META-INF)

  2. 创建XML文件:context.xml并粘贴此内容:

  3. <?xml version="1.0" encoding="UTF-8"?>
    <Context antiJARLocking="true" path="/myContext"/>
    
    1. 重启Tomcat
    2. 通过一些努力,您应该能够在Dockerfile中自动执行这些步骤。