eureka Service 部署到docker中的tomcat里面,访问404

sprouting 发布于 03/22 19:32
阅读 487
收藏 1

Serverless 架构就不要服务器了?>>>

eureka Service我打算打成war包,在本地启动没任何问题,下面是项目的配置,也没啥说的,都是基本的配置

springboot打成war包做过N多次了,我感觉我打包也是没问题的,idea打包也显示正常成功,打好的war包准备部署到docker中,执行的命令如下:

docker run -p 8080:8080 -dit --name eureka-server-8080 -v /opt/app/eureka-server-8080:/usr/local/soft/tomcat/webapps -v /opt/log/eureka-server-8080:/usr/local/soft/tomcat/logs -v /etc/localtime:/etc/localtime:ro --privileged=true --restart=on-failure:5 46c

当然这个映射的这个目录我也是进去看了的,确实映射成功,然后启动项目,查看日志

war也自动解压了,项目也加载了,没报错信息,但是访问: 服务器IP:8080   报404,加了项目名也一样404,

我开始怀疑我的docker部署方式有问题,又拷贝了一个其他的springboot项目进去,访问正常。

我又将tomcat管理界面配置了,访问也能看到应用确实没问题的。

但所有的点击访问都是404,为了防止是页面加载不出,我又写了一个controller,

本地访问正常,我部署到docker,无论哪种方式访问都是404。

百度了一圈,谷歌了一圈,双休就找这个问题去了,各种方法都试了,实在没找到原因,求解!!!!!

我感觉就是部署上有问题,因为这个界面

在本地跑是有的,在docker中是没有的,我另外部署的用springboot开发的项目,运行的时候也有这个界面,所以,我怀疑虽然运行了,但并没有真正执行,虽然,启动时间用了很长。

 

updata========================

2020年3月22日22:31:46

刚试着打成jar包,然后docker中 docker pull openjdk ,接着复制打好的jar到容器中,使用java -jar xxx.jar 启动,成功看到springboot界面,项目也访问正常,这是什么鬼?

以下是问题补充:

@sprouting:百度了一圈,发现这问题挺多人碰到的,但都没解决方案,是不能打成war包? (03/23 09:30)
加载中
0
单手开法拉利
单手开法拉利

tomcat部署,tomcat配置的端口优先于项目的端口,检查下tomcat的端口大小,访问下

 

sprouting
sprouting
端口设置为8080,该项已经检查过
0
m
maningz

会不会docker中tomcat版本太低导致

sprouting
sprouting
用的tomcat8,又 换了9,都不行
0
sprouting
sprouting

问题解决了,希望以后的朋友不要再走弯路,问题的主要根源还是在springboot 和 springcloud的版本问题导致的,一定要使用官方推荐的版本,最好是使用人家已经成功部署过的版本,jdk版本也要使用推荐的,有些bug报的错误根本十万八千里,都是版本的问题,另外还要注意docker的映射端口,部署到tomcat后,项目的访问端口是8080,不是你springboot里面配置的端口

返回顶部
顶部