Docke部署springboot jar包项目

简介: 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

0 常用文件放置

app中放入jar和字体和Dockerfile启动文件

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=dev","/app.jar"]

外部docker-compose.yml 提示步骤具体安装需要即可

version: '3'
services:
  policeoa:
    restart: always
    build: ./app
    image: lcls/lcls:release
    volumes:
        - /home/workspace/lcls:/root/lcls
        - /etc/localtime:/etc/localtime
        - /etc/timezone:/etc/timezone
    network_mode: "host"


目录
相关文章
|
12小时前
|
Java Maven
向 Maven 中央仓库上传一个修改过的基于jeecg的autoPOI的 jar包记录(一)
向 Maven 中央仓库上传一个修改过的基于jeecg的autoPOI的 jar包记录
17 0
|
12小时前
|
JavaScript 前端开发 Java
java项目的打包将vue放到.jar里面部署
java项目的打包将vue放到.jar里面部署
|
12小时前
|
消息中间件 JSON Java
RabbitMQ的springboot项目集成使用-01
RabbitMQ的springboot项目集成使用-01
|
12小时前
|
Java Go Maven
向 Maven 中央仓库上传一个修改过的基于jeecg的autoPOI的 jar包记录(二)
向 Maven 中央仓库上传一个修改过的基于jeecg的autoPOI的 jar包记录
10 0
|
12小时前
|
Java 关系型数据库 MySQL
保姆级教程——将springboot项目部署到阿里云服务器包含环境配置(小白包会)
本文档详细介绍了将SpringBoot项目部署到阿里云服务器的步骤。首先,通过Xshell连接服务器,使用公网IP地址。接着,下载JDK的Linux版本,使用XFTP上传并解压,配置环境变量。然后,安装MySQL 5.7,包括下载YUM源、安装、启动服务以及修改root密码和开启远程访问。最后,将SpringBoot项目打包成jar,上传至服务器,使用`java -jar`命令运行,通过`nohup`确保服务持续运行。配置安全组以允许远程访问。
|
12小时前
|
前端开发 Java Linux
宝塔Linux:部署His医疗项目通过jar包的方式
宝塔Linux:部署His医疗项目通过jar包的方式
|
12小时前
|
前端开发 Java 应用服务中间件
在虚拟机的Windows操作系统中:通过Jar方式若依项目,以及在外部的访问!
在虚拟机的Windows操作系统中:通过Jar方式若依项目,以及在外部的访问!
|
12小时前
|
Java
springboot项目出现Exception in thread “main“ java.lang.NoClassDefFoundError: javax/servlet/Filter
springboot项目出现Exception in thread “main“ java.lang.NoClassDefFoundError: javax/servlet/Filter
14 0
|
12小时前
|
Java Spring
Spring boot项目如何发送邮件
Spring boot项目如何发送邮件
18 2
|
12小时前
|
安全 Java Docker