docker tomcat鏡像部署springbootwar包


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM