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

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

你可能感兴趣的:(docker,file,打包jar)