小编典典

将Java Webapp部署到在Docker容器中运行的Tomcat 8

spring-boot

我对Tomcat和Docker非常陌生-因此我很可能在这个问题的某个地方缺少Tomcat基本知识。

我正在尝试做的是构建一个运行SpringBoot Restful
Web服务的Docker容器,该服务仅返回一些静态数据。这些都在OSX上运行,因此我也使用了Boot2Docker。

我已经编写了自己的Dockerfile来构建应用程序运行所在的容器:

FROM tomcat:8.0.20-jre8

RUN mkdir /usr/local/tomcat/webapps/myapp

COPY /1.0-SNAPSHOT/my-app-1.0-SNAPSHOT.war /usr/local/tomcat/webapps/myapp/

这个Dockerfile可以正常工作,我可以从创建的映像启动容器。

docker build -t myapp .

docker run -it --rm -p 8888:8080 myapp

此容器可以正确启动,并且不会输出任何错误,并显示消息,表明我的应用已部署。

22-Mar-2015 23:07:21.217 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 
Deploying web application directory /usr/local/tomcat/webapps/myapp

容器还正确地将myapp.war复制到Dockerfile中描述的路径。此外,我能够导航到Tomcat默认页面以确认Tomcat正在运行,我也可以点击所有示例,等等。

对于这个问题,当我导航到http://192.168.59.103:8888/myapp/getData时,我得到了404。我不太清楚为什么。我是否缺少有关将.war部署到Tomcat的内容?


阅读 283

收藏
2020-05-30

共1个答案

小编典典

您正在尝试将war文件复制到下面的目录中webapps。战争文件应复制到webapps目录中。

删除mkdir命令,然后war像这样复制文件:

COPY /1.0-SNAPSHOT/my-app-1.0-SNAPSHOT.war /usr/local/tomcat/webapps/myapp.war

如果autodeploy打开,Tomcat将提取战争信息。

2020-05-30