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不可以
