首先我們的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,就可以在不添加項目名稱