springboot项目打包成docker镜像多种方式及存在外置jar包或配置文件时的镜像方式

springboot项目打包不存在外置配置时

 

1、打jar包镜像方式。

 

springboot项目目录下添加Dockerfile文件

注:Dockerfile没有后缀名

Dockerfile中的内容如下:

# 基于哪个镜像,需要用一个已有的镜像做载体来创建,这里使用的java8镜像,如果大家的docker镜像中没有java8,它就会自动去下载
FROM openjdk:8-jdk-alpine
# 将本地文件夹挂载到当前容器,指定/tmp目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录
VOLUME /tmp
#maven打包buildArgs指定项目jar包位置名称
ARG JAR_FILE
#把本地目录下target文件夹里打好的jar文件添加到容器里,重命名为server-boot.jar
ADD ${JAR_FILE} server-boot.jar

#设置环境变量。在复杂的使用场景中,我们可能需要使用各种参数启动JVM,这些参数通过ENV命令设置的环境变量传入Java命令
ENV JAVA_OPTS=""
#容器镜像运行的起始点
ENTRYPOINT exec java $JAVA_OPTS -jar /server-boot.jar

pom添加docker插件

      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>com.spotify</groupId>
        <artifactId>dockerfile-maven-plugin</artifactId>
        <version>1.3.6</version>
        <configuration>
          <!--打包后得到的镜像的名称-->
          <repository>docker/${project.artifactId}</repository>
          <!--Dockerfile中引用到的参数-->
          <buildArgs>
            <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
          </buildArgs>
        </configuration>
      </plugin>

执行打包程序

mvn package

centos创建文件夹存放准备程序

在centos7 ~ 创建一个文件夹dockerFile里面放置 上面的Dockerfile 和 springBoot 打包的项目spring_boot.jar

在该docker文件下 指令:docker build -t docker_project:v1.0 .   来打镜像包(注意后边有个.)

执行docker build命令,docker就会根据Dockerfile里你定义好的命令进行构建新的镜像。

-t代表要构建的镜像的tag,.代表当前目录,也就是Dockerfile所在的目录,v1.0代表打得镜像包tag版本。然后就可以看到在下载各种依赖的maven、各种jar,构建完毕后,启动项目。

执行docker run -d -p 8090:8080 bpm-server:v1.0  启动运行该镜像  此处讲镜像中端口8080 映射到宿主机的8090端口.

看docker容器日志我常用的两种方法

  • 实时倒数500行日志,这个很实用
docker logs -f --tail 500 容器id
  • 容器倒数五分钟内的日志 
docker logs --since 5m 容器id
  • 实时查看日志信息
docker logs -f 容器id

2、整个工程代码拷到centos服务器上打镜像方式

如jar包打镜像方式 修改pom  和添加Dockerfile文件,将整个项目放centos目录下。执行mvn package命令先打包 

[root@iz2zeh5mjwg5u2vl2fawchz ~]# ls /usr/local/gs-spring-boot-docker-master
pom.xml src target

再在/usr/local/gs-spring-boot-docker-master目录下运行命令mvn package docker:build

执行docker images查看打包好的镜像是否成功。

springboot项目打包存在外置配置时

 当springboot项目打包下来启动需要读取外置配置文件  外置的jar包时  可以将打包后的整个文件夹创建成docker镜像,方式和打jar包镜像类似 ,换jar为项目打包后生成所需文件夹。

修改Dockerfile文件:

# 基于哪个镜像,需要用一个已有的镜像做载体来创建,这里使用的java8镜像,如果大家的docker镜像中没有java8,它就会自动去下载
FROM openjdk:8-jdk-alpine
# 将本地文件夹挂载到当前容器,指定/tmp目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录
VOLUME /tmp
#把本地目录下target文件夹里打好的jar文件添加到容器里,重命名为server-boot.jar
ADD server-boot-8.0.0-SNAPSHOT server-boot-8.0.0-SNAPSHOT

#设置环境变量。在复杂的使用场景中,我们可能需要使用各种参数启动JVM,这些参数通过ENV命令设置的环境变量传入Java命令
ENV JAVA_OPTS=""
#容器镜像运行的起始点(有自己的启动脚本可以直接执行)
ENTRYPOINT exec ./server-boot-8.0.0-SNAPSHOT/bin/startup.sh

 注意此时自己打包生成的执行脚本需要赋有权限。

进行jar包打镜像步骤 将此文件夹打成镜像 后启动,实则执行的是启动脚本startup.sh

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值