使用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/****
3.在spring-boot-starter-web依赖中移除tomcat模块。
4.添加Tomcat jar包依赖,将scope设置为provided
5.添加servlet依赖。
6.修改启动文件Application继承SpringBootServletInitializer,并重载configure方法
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容器成功
将打包好的war包上传部署到tomcat容器中
将war上传到docker中的tomcat容器中
docker cp myweb.war 112b205d7845:/usr/local/tomcat/webapps
进入tomcat容器中,可看到我们上传到/tomcat/webapps/下的war包已自动解压
重启tomcat容器
浏览器访问宿主机IP:8081/war包名(即项目名)/名