Docke部署springboot jar包项目
Posted 赵广陆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docke部署springboot jar包项目相关的知识,希望对你有一定的参考价值。
1. 先打包项目 —>打开maven命令 输入
clean package -Dmaven.test.skip=true
2. 找到项目根目录下的target目录,这里面的jar就是打包好可以部署的jar包
3.准备服务器上的jar包存放目录以及Dockerfile文件
并且在本目录下创建Dockerfile文件,并且将下面这段粘贴在Dockerfile文件中【使用vi命令即可完成文件的创建以及文件内容的填充】
FROM java:8
VOLUME /temp
ADD HPV-0.0.1-SNAPSHOT.jar hpv.jar
RUN bash -c 'touch /HPV-0.0.1-SNAPSHOT.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","-Xmx1024m","-Xms1024m","/hpv.jar","--spring.profiles.active=pro"]
FROM openjdk:8-jdk-alpine
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' > /etc/timezone
COPY songti.ttc /usr/share/fonts/song/
ARG JAR_FILE=\\*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","-Dspring.profiles.active=release","/app.jar"]
解释:
FROM java:8
指定要构建的spring
boot服务镜像的基础源镜像是java,版本是8;如果本地没有java:8的镜像,就会从dockerHub下载。一般首次下载,以后就不会下载了。VOLUME /temp
VOLUME 指向了容器内的/tmp的目录,由于 Spring Boot 使用内置的Tomcat容器,Tomcat
默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录VOLUME 命令只能指定挂载点,也就是说在此处,只能指定容器内的目录,不能指定宿主机上对应的目录,也就是说是宿主机上自动生成的目录
去挂载了 容器内的指定的/tmp目录!!!如果想要指定宿主机的目录去进行挂载,只能通过run命令中的 -v参数进行 宿主机的指定目录 挂载 容器内的指定目录
ADD HPV-0.0.1-SNAPSHOT.jar hpv.jar
其实就是 ADD 【rz上传上来的文件】 【要被拷贝到即将要构建的docker容器中的文件】
RUN bash -c ‘touch /HPV-0.0.1-SNAPSHOT.jar’ 实际执行复制操作的命令
java -jar xxx.jar为实际启动命令 ENTRYPOINT 入口点
4.上传jar包到同级目录
5.#hpv表示生成镜像的名称,(注意后面有个点.)
docker build -t hpv .
6.docker images查看是否成功
7.启动
docker run -d -p 9700:9700 --name hpv hpv
8.查看日志
docker logs -f hpv
9.更新jar包
version: '3'
services:
jury:
restart: always
build: ./app
image: jury/jury-management:release
volumes:
- /home/workspace/jury:/root/jury
- /etc/localtime:/etc/localtime
- /etc/timezone:/etc/timezone
network_mode: "host"
docker-compose up -d --build
以上是关于Docke部署springboot jar包项目的主要内容,如果未能解决你的问题,请参考以下文章
如何将springboot项目打包成jar包并部署到服务器上
《自动化系列》Jenkins部署springboot项目jar包