无法使用Docker在tomcat上运行webapplication

时间:2016-10-14 17:01:16

标签: file tomcat web-applications docker war

我试图在浏览器上显示我为学校项目创建的webapp。 首先,我将我的Dockerfile和我的.war文件放在同一个文件夹/home/giorgio/Documenti/dockerProject中。我在Dockerfile中写了以下内容:

# Pull base image
From tomcat:7-jre7

# Maintainer
MAINTAINER "xyz <xyz@email.com">

# Copy to images tomcat path
RUN rm -rf /usr/local/tomcat/webapps/ROOT
COPY file.war /home/giorgio/Documenti/apache-tomcat-7.0.72/webapps/

然后我使用ubuntu shell中的命令构建了图像:

docker build -t myName /home/giorgio/Documenti/dockerProjects

最后,我在shell上运行:

docker run --rm -it -p 8080:8080 myName

现在,一切正常并且没有显示任何错误,但是当我想从浏览器中显示任何显示的localhost:8080时,tomcat已经开始运行得很好。

对于我看不到的可能问题的任何想法? 谢谢!

1 个答案:

答案 0 :(得分:1)

这是你的整个Dockerfile吗?

因为您只删除了所有ROOT内容(步骤#3)

然后用您的应用程序复制war文件(步骤#4) - 可能只在错误文件夹应该是/ usr / local / tomcat / webapps /

但是我没有看到任何端点或启动前台应用程序。

我想你需要添加:

CMD ["/usr/local/tomcat/bin/catalina.sh", "run"]

并且只运行tomcat。它是EXPOSE端口的例程,但是当你使用-p时,docker会进行隐式暴露。

所以你的Dockerfile应该是这样的:

# Pull base image
From tomcat:7-jre7

# Maintainer
MAINTAINER "xyz <xyz@email.com">

# Copy to images tomcat
RUN rm -rf /usr/local/tomcat/webapps/ROOT

# fixed path for copying
COPY file.war /usr/local/tomcat/webapps/

# Routine for me - optional for your case
EXPOSE 8080

# And run tomcat
CMD ["/usr/local/tomcat/bin/catalina.sh", "run"]