【问题标题】:In docker contaier warfile folder is not created in webapps after start the tomcat在启动 tomcat 后,在 webapps 中未在 docker 容器中创建 jar 文件夹
【发布时间】:2018-01-10 11:19:15
【问题描述】:

当我们在 webapps 中运行 tomcat 时,会创建 war 文件的文件夹,就像我们有 name.war 文件一样,运行 tomcat 后会在 webapps 中创建 name 文件夹

但是当我们使用dockerfile通过docker部署war文件时,在docker容器中我们有tomcat文件夹,在webapps中我们有war文件,运行dockerfile tomcat get start应用程序也在运行,但在webapp的文件夹中war文件不是创建的。 就像我在 docker 容器的 webapps 中有 name.war 但在运行 tomcat 后 webapps 中没有 name 文件夹。

所以如果我们需要在war文件中对jsp进行一些小的更改,那么我们需要对war文件进行整个部署,例如停止容器构建dockerfile运行dockerfile等。所以如果我们在webapps中有那个warfile文件夹,那么我们可以更改jsp 或 js 很容易。 那么我们如何在docker容器中运行tomcat后获取warfile文件夹。

构建 Dockerfile:

docker build -t tomcat . 

tomcat 是图片的名字

运行 Dockerfile:

docker run -p 8080:8080 tomcat

我的 Dockerfile 是:

FROM openjdk:7-jre

MAINTAINER shri

ENV CATALINA_HOME /usr/local/tomcat

ENV PATH $CATALINA_HOME/bin:$PATH

COPY tomcat $CATALINA_HOME

ADD  newui.war  $CATALINA_HOME/webapps

CMD $CATALINA_HOME/bin/startup.sh && tail -F $CATALINA_HOME/logs/catalina.out

EXPOSE 8080

【问题讨论】:

  • 有什么异常的tomcat配置吗?
  • no ... 甚至日志也不会显示在 docker 容器中的 tomcat 的日志文件夹中,所以我通过这个命令 docker run \-d \- 在我的主机日志文件夹中获取 docker 容器中的日志p 8085:8085 \-v /usr/local/tomcat/logs:/usr/local/tomcat/logs \tomcat 或 docker run \-d \-v /usr/local/tomcat/logs:/usr/local/tomcat /日志 \tomcat

标签: docker dockerfile war


【解决方案1】:

您可以通过在主机上挂载包含战争的文件夹来提供从主机到容器的战争。

docker run -v /.../tomcat:/usr/local/tomcat -p 8080:8080 --name tomcat tomcat

/.../tomcat 是一个尚未存在的 tomcat 文件夹的路径。现在每当你有一个新的war文件时,将它复制到/.../tomcat目录并重启容器。

docker restart tomcat

请注意,无需重建容器。

【讨论】:

  • 好的,谢谢.. 但我的问题是我如何在运行 tomcat 后获取未显示在 docker 容器中的 tomcats webapps 文件夹中的 war 文件夹,那么我将如何在 webapps 中获取该 war 文件夹
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-01
  • 1970-01-01
  • 2014-03-23
  • 1970-01-01
  • 2022-06-24
  • 1970-01-01
  • 2018-12-04
相关资源
最近更新 更多