docker file 打包jar_Springboot项目打jar包 docker 部署

本文介绍了如何将SpringBoot项目打包成jar,并利用Dockerfile创建镜像进行部署。详细步骤包括编写Dockerfile,设置VOLUME、COPY、RUN、EXPOSE和ENTRYPOINT指令,以及在服务器上构建和运行Docker镜像。
摘要由CSDN通过智能技术生成

SpingBoot项目打包成jar 包  部署在docker容器中首先要准备两个文件:

1、项目jar包(在这里不做说明);

2、dockerfile 文件(没有任何后缀的文件)

2.1 dockerfile 文件的编写:

文件内容如下:

FROM java:8

VOLUME /tmp

COPY springBootDocker-0.0.1-SNAPSHOT.jar app.jar

RUN bash -c "touch /app.jar"

EXPOSE 9011

ENTRYPOINT ["java","-jar","app.jar","--spring.profiles.active=test","--server.port=9011",">/log/app.log"]

对以上内容做一个简单说明:

java:8是指Docker Hub上官方提供的java镜像,版本号是8也就是jdk1.8,有了这个基础镜像后,Dockerfile可以通过FROM指令直接获取它的状态——也就是在容器中java是已经安装的,接下来通过自定义的命令来运行Spring Boot应用:

VOLUME指向了一个/tmp的目录,由于Spring Boot使用内置的Tomcat容器,Tomcat默认使用/tmp作为工作目录。效果就是在主机的/var/lib/docker目录下创建了一个临时文件,并连接到容器的/tmp。

COPY 将项目的jar文件作为app.jar添加到容器

RUN表示在新创建的镜像中执行一些命令,然后把执行的结果提交到当前镜像。这里使用touch命令来改变文件的修改时间,Docker创建的所有容器文件默认状态都是“未修改”。这对于简单应用来说不需要,不过对于一些静态内容(比如:index.html)的文件就需要一个“修改时间”。

EXPOSE 容器暴露端口

ENTRYPOINT 应用启动命令 参数设定

3、将准备好的dockerfile 文件和 jar 架包 上传到服务器的同一文件夹下如下:

-rw-r--r-- 1 root root 228 Apr 20 10:24 Dockerfile

-rw-r--r-- 1 root root 16103675 Apr 20 10:43 springBootDocker-0.0.1-SNAPSHOT.jar

4、执行命令  将jar打包为镜像 (docker build -t 镜像名  .) 命令最后的 “ . ”  不要丢

[root@xxxxx dockerTest]# docker build -t spring-boot-docker-test .

Sending build context to Docker daemon 16.11MB

Step 1/6 : FROM java:8

---> d23bdf5b1b1b

Step 2/6 : VOLUME /tmp

---> Running in 6b4e03ffc2e7

Removing intermediate container 6b4e03ffc2e7

---> 8769a34dcd31

Step 3/6 : COPY springBootDocker-0.0.1-SNAPSHOT.jar app.jar

---> 949fe4a2a361

Step 4/6 : RUN bash -c "touch /app.jar"

---> Running in fb3d86a4882a

Removing intermediate container fb3d86a4882a

---> a15fe3f2a1b0

Step 5/6 : EXPOSE 9011

---> Running in 04dc3e21e88b

Removing intermediate container 04dc3e21e88b

---> d1cccdf738de

Step 6/6 : ENTRYPOINT ["java","-jar","app.jar","--spring.profiles.active=test","--server.port=9011",">/log/app.log"]

---> Running in 7e000ca7e6b7

Removing intermediate container 7e000ca7e6b7

---> 0969ececcf8b

Successfully built 0969ececcf8b

Successfully tagged spring-boot-docker-test:latest

出现successfully 说明镜像打包成功

执行  docker images :

[root@xxxx dockerTest]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

spring-boot-docker-test latest 0969ececcf8b 37 seconds ago 675MB

5、 运行镜像

[root@xxxx dockerTest]# docker run \

> --name testServer -d \

> -v /home/testServer/logs:/log \

> -p 9011:9011 spring-boot-docker-test

查看运行状态:

[root@xxxx dockerTest]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

135a2da801eb spring-boot-docker-test "java -jar app.jar -…" 9 seconds ago Up 7 seconds 0.0.0.0:9011->9011/tcp testServer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值