Springboot将项目打包成war包部署到docker中的tomcat容器中

使用maven创建的springboot项目,默认是jar包,springboot还有自己带的tomcat。现在我们需要将项目打包成war包,并部署到Docker中的Tomcat容器中。


操作步骤如下:

一.将Springboot项目以war包进行打包

Maven创建的Springboot项目

1.修改pom.xml文件。将jar修改为war。

<packaging>war</packaging>

2.添加maven的war打包插件如下:并且给war包起一个名字,tomcat部署后的访问路径会需要,如:http:localhost:8080/myweb/****

 

Springboot将项目打包成war包部署到docker中的tomcat容器中

3.在spring-boot-starter-web依赖中移除tomcat模块。

 

Springboot将项目打包成war包部署到docker中的tomcat容器中

4.添加Tomcat jar包依赖,将scope设置为provided

 

Springboot将项目打包成war包部署到docker中的tomcat容器中

5.添加servlet依赖。

 

Springboot将项目打包成war包部署到docker中的tomcat容器中

6.修改启动文件Application继承SpringBootServletInitializer,并重载configure方法

 

Springboot将项目打包成war包部署到docker中的tomcat容器中

7.使用mvn打包,mvn clean package -Dmaven.test.skip=true。打包成功后可在项目Target目录下看见打包后的.war包

 


二.安装好Docker环境

1. yum install -y epel-release 

2. yum install docker-io # 安装docker 

3. chkconfig docker on # 加入开机启动 

4. service docker start # 启动docker服务

 


三. 在Docker中拉取Tomcat的镜像

(这里我是拉取的docker.io的tomcat镜像,默认的JDK版本是1.8,tomcat版本是8),然后运行Tomcat容器 ,操作步骤和指令如下:

A: docker pull docker.io/tomcat

B: docker run -p 8081:8080 docker.io/tomcat # 若端口被占用,可以指定容器和主机的映射端口 前者是外围访问端口:后者是容器内部端口,我这里防止端口被占用指定的8081端口

通过浏览器访问宿主机IP:端口即可访问到tomcat的访问界面即安装运行tomcat容器成功

 

Springboot将项目打包成war包部署到docker中的tomcat容器中

将打包好的war包上传部署到tomcat容器中

将war上传到docker中的tomcat容器中

Springboot将项目打包成war包部署到docker中的tomcat容器中

docker cp myweb.war 112b205d7845:/usr/local/tomcat/webapps

进入tomcat容器中,可看到我们上传到/tomcat/webapps/下的war包已自动解压

 

Springboot将项目打包成war包部署到docker中的tomcat容器中

重启tomcat容器

浏览器访问宿主机IP:8081/war包名(即项目名)/名

 

Springboot将项目打包成war包部署到docker中的tomcat容器中