我试图在浏览器上显示我为学校项目创建的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已经开始运行得很好。
对于我看不到的可能问题的任何想法? 谢谢!
答案 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"]