Springboot项目打jar包 docker 部署

旧城冷巷雨未停 提交于 2020-04-20 14:16:57

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

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!