java - Docker tomcat 编辑扩展的 war 文件

标签 java tomcat docker war

我正在使用 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 执行时 war 才会扩大,之后我无法编辑文件。

最佳答案

我不确定您将如何使用 docker 或其他任何东西来实现它,因为我无论如何都看不到要求 tomcat 在实际开始之前扩大 war 。但按照标准做法,爆发 war 并调整内容并不是一个好主意。它扼杀了发动 war 的全部目的。

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

如果你实现了这个,你唯一需要告诉 Docker 的是将你的配置文件添加到容器 tomcat conf 文件夹中。

或者,如果您必须篡改 war 文件,那么您可以这样做: 在构建机器上手动(或通过脚本)展开 war,而不是将 war 直接添加到 docker 镜像,而是映射文件夹。 像这样

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

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

ADD login.jsp/var/lib/jetty/webapps/ROOT/Webapps,等等。

关于java - Docker tomcat 编辑扩展的 war 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30760989/

相关文章:

tomcat - 第一次安装后启动pentaho

docker - 如何在openshift/jenkins-1-centos7 docker容器中启用系统服务?

java - 计时器将 Graphics2D 对象移动到 JFrame 中的图像上? (日出程序示例)

java - Apache Tomcat 为 Web 应用程序返回 404 错误

java - Spring ConversionFailedException 无法序列化为 JSON

file - access to file to files tomcat的conf文件夹下的一个文件

docker - 如何更改OpenWhisk中功能允许的最大内存

wordpress - 如何将 apache2 链接到 wordpress docker 容器?

java - 如何为长生命周期对象优化 Java gc

java - 无法创建新的 Android 虚拟设备管理器 (AVD)