【发布时间】: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