无法使用 Docker 在 tomcat 上 运行 webapplication

Can't run webapplication on tomcat using Docker

我想在我的浏览器上显示我为学校项目创建的网络应用程序。 首先,我将我的 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 已经启动 运行宁完美无缺

关于我看不到的可能问题有什么想法吗? 谢谢!

这是你的整个 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"]