springboot打war包
1.在pom文件中增加插件
<build>
<finalName>xx</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<!-- 在编译,打包时禁止运行 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
2.删除springboot自带打tomcat依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring-boot-version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
3.增加tomcat依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!--打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。
相当于compile,但是打包阶段做了exclude操作-->
<scope>provided</scope>
</dependency>
4.新定义类继承 SpringBootServletInitializer,并实现
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(xxApplication.class);
}
这个也可以写在xxApplication.java中
5.如果是springboot2.2.x+mybatis的,那么需要在resource下面创建spring.properties
spring.jndi.ignore=true
下面就直接编译打包
docker 部署tomcat中打war包
1.首先先在docker仓库中下拉tomcat镜像,也可以使用下载好的tomcat镜像执行docker load -i x.tar
2.编写dockerFile,这样容器才会挂载运行
DockerFile
from 容器id或者容器标签
#时区
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo 'Asia/Shanghai' >/etc/timezone
#war
RUN rm -rf /usr/localhost/tomcat/webapps/*
COPY *.war /usr/local/tomcat/webapps/
3.build容器,执行
docker build -t 定义新镜像的标签 -f Dockerfile .
Dockerfile可以省略,它会在当前目录下找Dockerfile这个文件
5.运行新到镜像 docker run --name xx:v1 -p 8081:8080 镜像id
如果想要在后台运行那么加上-d,不过第一次不建议,我们需要查看日志
6.进入容器查看war包有没有copy到webapps下面,并且解析
docker exec -it 容器 /bin/bash
7.执行保存操作
docker save 镜像id -o xx.tar
拓展命令
docker images 查看镜像
docker ps 查看运行到容器
docker ps -a 查看所有容器
docker stop 容器ID 停止容器
docker rm 容器ID 删除容器
docker rmi 镜像ID 删除镜像
1.镜像和容器的区别
镜像是指文件,例如系统镜像
容器是指环境,由镜像文件运行产生的
2.save和export的区别
save操作的是镜像,export操作的是容器
save因为有记录,所以可以回滚,而export不可以
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:docker tomcat镜像部署springbootwar包 - Python技术站