前言
之前寫過一篇 《Docker-compose 部署jar包服務》感興趣的小夥伴可點鏈接查看。
但很多時候,服務也會打成一個war包來部署,那該怎麼辦呢?下面是我部署war過程的記錄,還是遇到不少坑的。此處做下記錄。
項目改造
- 啓動類繼承SpringBootServletInitializer並重寫configure方法。
/**
* 開放平臺啓動類
*
* @author gourd.hu
*/
@SpringBootApplication
@Slf4j
public class OpenapiWebApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(OpenapiWebApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(OpenapiWebApplication.class, args);
log.warn(">o< 開放平臺服務啓動成功!溫馨提示:代碼千萬行,註釋第一行,命名不規範,同事淚兩行 >o<");
}
}
- pom修改打包類型
<packaging>war</packaging>
- 打包插件配置
<build>
<!--自定義打包文件名-->
<finalName>openapi</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<!--啓動類路徑-->
<mainClass>org.gourd.hu.OpenapiWebApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
- 用maven- package命令打包
部署
- docker-compose.yml準備,此處提供一下我的配置
version: '3'
services:
openapi-service:
image: tomcat:9.0.33
ports:
- "8088:8080"
restart: always
environment:
- TZ=Asia/Shanghai
- JAVA_OPTS=-Xmx256m -Xms256m
entrypoint:
- "catalina.sh"
- "run"
volumes:
- "./tomcat-web/webapps:/usr/local/tomcat/webapps"
- "./tomcat-web/logs:/usr/local/tomcat/logs"
container_name: openapi
- 將war包放到 /tomcat-web/webapps 下
- 運行到 docker-compose.yml目錄下,執行命令
docker-compose up -d
結語
docker-compose 部署war包就完成了,可以到logs目錄下查看啓動日誌。如果本文有不對的地方,歡迎指正。最後奉上自己的開源項目,有興趣的小夥伴可以下載看看。
cloud-plus:https://blog.csdn.net/HXNLYW/article/details/104635673