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

  • 相关阅读:
    angularjs $index用来取顺序
    angularjs &登录跳转
    if(!confirm("您确定删除吗?")){return;}
    登录跳转
    undefined null测试
    git生成密钥
    遍历map
    网络相关名词解释
    redis的Pub/Sub
    SQLAlchemy的使用
  • 原文地址:https://www.cnblogs.com/freeht/p/12030741.html
Copyright © 2020-2023  润新知