一尘不染

Docker Tomcat编辑扩展的War文件

tomcat

我正在使用docker部署运行第三方war文件的tomcat容器。

Dockerfile看起来像这样

FROM tomcat:7-jre8

ADD my.war ${CATALINA_HOME}/webapps/my.war

当我运行容器时,tomcat
war在运行时扩展了我的容器,我可以在处愉快地访问我的应用程序http://my.ip.addr:8080/mywar/

但是我的问题是我想在中编辑几个配置文件war。我真的不想拆包并重新打包war文件,因为这看起来很杂乱且难以维护。

我希望能够告诉tomcat的扩大war为我的部分RUN步骤,然后用ADD把我的自定义文件,但我似乎无法找到这样做的方式。战争只会在CMD执行时扩展,然后我将无法编辑文件。


阅读 268

收藏
2020-06-16

共1个答案

一尘不染

我不确定您将如何使用docker或其他方式实现此目标,因为我仍然看不到要求tomcat在战争真正开始之前就扩大战争范围。但是按照标准惯例,爆发战争并调整内容并不是一个好主意。它扼杀了发动战争的全部目的。

相反,您应该对应用程序进行更改,以从<< TOMCAT_HOME >> / conf中读取配置。

如果做到这一点,您唯一需要告诉Docker的就是将您的配置文件添加到容器tomcat conf文件夹中。

或者,如果您必须篡改war文件,可以执行以下操作:在构建计算机上手动(或通过脚本)展开war,而不是将war直接添加到docker映像中,而是映射该文件夹。像这样

添加./target/app-0.1.0.BUILD-SNAPSHOT / var / lib / jetty / webapps / ROOT。

然后手动将所有文件添加到所需的目标位置。

添加login.jsp / var / lib / jetty / webapps / ROOT / Webapps,依此类推。

2020-06-16