首先我们的springboot项目要先能打包为war包
在pom中添加
<packaging>war</packaging>
添加pom依赖排出tomcat
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
在pom中添加项目名称
<build>
<finalName>tm_eureka</finalName>
</build>
在
@SpringBootApplication注解的类的同级目录新建类
package com.tm;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
//Application的类名
return application.sources(AppEureka.class);
}
}
配置webapp
有时候路径会不对,要让路径在下面生成的webapp目录下面
保存成功后,执行下面两步,先清理在生成
在我们生成的这个war中,在tomcat中使用的时候,yml配置文件中配置的端口号与请求路径都失效了,
server:
port: 端口
servlet:
context-path: 请求路径
现在的端口号是使用tomcat提供的端口号,需要该的话就要去tomcat的配置文件修改,请求路径变成了
IP:端口/tm_eureka/具体的请求地址
现在我们在docker下下载tomcat与jdk
启动tomcat
docker run --name tomcat -p 81:8080 -v /tomcat/webapps/:/usr/local/tomcat/webapps/ -d tomcat
这里挂载了外部的webapps目录,方便我们上传项目
将生成的war包上传到linux下/tomcat/webapps目录下面
然后重启容器
tomcat会自动给我们解压项目
然后请求是在端口后面加上tm_eureka就可以访问
如果不要在请求地址中加上项目名称,在webapps中修改项目的文件名称ROOT,就可以在不添加项目名称