首頁>技術>

為什麼要容器化部署專案?

為了模擬測試和UAT的環境,使用tomcat容器部署一個springboot專案是非常方便,因為可以很方便快捷的拉取符合環境要求的tomcat和資料庫,而且現在很多大企業的生產環境都會把專案容器化執行.配置好引數一條命令就可實現專案啟動.

第一步 將springboot專案打成war包

1、 由於伺服器上面使用的一般是war包,所以此處將專案打包方式由jar包->war包

在pom.xml中新增

<packaging>war</packaging>

新增<packaging>war</packaging>

2、使用外部伺服器,所以去除Springboot內建的伺服器

pom.xml中新增如下:

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-tomcat</artifactId>

<scope>provided</scope>

</dependency>

除Springboot內建的伺服器

3. 重點:Springboot專案啟動時,會建立Spring容器,容器中包含大量的Servlet、Filter和Spring Beans物件,此時由於使用外部的伺服器,所以我們需要將Spring容器中的物件繫結到伺服器上,我們採用官方推薦的方式,讓啟動類繼承SpringBootServletInitiallizer並重寫configure方法,官方demo如下:

繼承SpringBootServletInitiallizer方式

4 . 使用外部Tomcat部署訪問的時候,application.properties(或者application.yml)中配置的

server.port=

server.servlet.context-path=

將失效,請使用tomcat的埠,tomcat,webapps下專案名進行訪問。為了防止應用上下文所導致的專案訪問資源載入不到的問題,建議pom.xml檔案中<build></build>標籤下新增<finalName></finalName>標籤:

<build>

<finalName>class15_springboot_config</finalName>

<plugins>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

</plugins>

</build>

防止載入不到專案直接指定

5. 正常的clean 打包操作後將war包直接放在tomcat的webapps目錄下面啟動就ok;

打包成功

war出現了

6. 將war包copy到comcat容器的app目錄

將springboot專案的war使用docker cp 檔案 containId:/目錄 命令複製到docker webapps

目錄就可以訪問到了.tomcat容器會自動檢測到專案,copy到app下不需要重啟tomcat也會自動檢測到專案並且解壓.

7. 訪問路徑要加上專案路徑就可以訪問了.

以後重啟專案和資料庫只需重啟docker 容器就ok.簡單快捷.

感謝查閱!

23
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Java中讀寫鎖的設計以及實現,不懂進來