【ruoyi-vue-plus项目docker build 方式部署jar包】

前言

由于大多数的项目由于安全原因无法开放2375端口,只能通过上传jar包在服务器上进行镜像构建,docker build是docker基础,项目wiki中没有介绍,这里也只是做一个补充教程,实际自行学习docker build相关知识

ruoyi-vue-plus项目地址
项目部署wiki地址

一、使用maven构建jar包

不多介绍直接选中部署环境,package

二、在服务器中建立相关jar包与Dockerfile存放路径

这里我们直接在/root/docker路径下创建
【ruoyi-vue-plus项目docker build 方式部署jar包】_第1张图片

三、将相关jar包与模块中的dokerfile文件放置到相对应的文件夹中

如构建monitor-admin镜像,将ruoyi-monitor-admin.jar与该模块下的dockerfile文件上传到monitor-admin文件夹下
【ruoyi-vue-plus项目docker build 方式部署jar包】_第2张图片

四、修改dockerfile文件

这一步可以在上传文件前直接在项目中修改也可以上传后使用vim修改,主要修改下需要构建的jar包路径就可以了,将./target/ruoyi-monitor-admin.jar修改为./ruoyi-monitor-admin.jar其他不需要调整

示例:

FROM anapsix/alpine-java:8_server-jre_unlimited  
  
MAINTAINER Lion Li  
  
RUN mkdir -p /ruoyi/monitor  
RUN mkdir -p /ruoyi/monitor/logs  
  
WORKDIR /ruoyi/monitor  
  
EXPOSE 9090  
  
ADD ./ruoyi-monitor-admin.jar ./app.jar  
  
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]

五、构建镜像

需要注意构建镜像的时候指定的镜像名和标签需要和docker-compose中一致,否则无法启动镜像
【ruoyi-vue-plus项目docker build 方式部署jar包】_第3张图片

构建命令:

docker build -t ruoyi/ruoyi-monitor-admin:4.3.0-beta2 /root/docker/monitor-admin/

ruoyi/ruoyi-monitor-admin:4.3.0-beta2为指定的镜像名和标签
/root/docker/monitor-admin/为dockerfile存放的路径

完成

后续只需要按照wiki继续执行脚本即可

补充说明

如果觉得这样敲命令构建镜像比较麻烦,可以改造下deploy.sh脚本,把docker build命令也写到脚本中去,后续直接使用脚本更新镜像即可,也可以按需把build拆分或者只保留server,这里只是提供一个参考

#!/bin/bash  
  
#使用说明,用来提示输入参数  
usage() {  
    echo "Usage: sh 执行脚本.sh [port|mount|monitor|base|start|build|restart|stop|stopall|rm|rmiNoneTag]"  
    exit 1  
}  
  
#开启所需端口(生产环境不推荐开启)  
port(){  
    # mysql 端口  
    firewall-cmd --add-port=3306/tcp --permanent  
    # redis 端口  
    firewall-cmd --add-port=6379/tcp --permanent  
    # minio api 端口  
    firewall-cmd --add-port=9000/tcp --permanent  
    # minio 控制台端口  
    firewall-cmd --add-port=9001/tcp --permanent  
    # 监控中心端口  
    firewall-cmd --add-port=9090/tcp --permanent  
    # 任务调度中心端口  
    firewall-cmd --add-port=9100/tcp --permanent  
    # 重启防火墙  
    service firewalld restart  
}  
  
##放置挂载文件  
mount(){  
    #挂载 nginx 配置文件  
    if test ! -f "/docker/nginx/" ;then  
        mkdir -p /docker/nginx/  
        cp -r nginx/* /docker/nginx/  
    fi  
    #挂载 redis 配置文件  
    if test ! -f "/docker/redis/" ;then  
        mkdir -p /docker/redis/  
        cp -r redis/* /docker/redis/  
    fi  
    chmod -R 777 /docker  
}  
  
#启动基础模块  
base(){  
    docker-compose up -d mysql nginx-web redis minio  
}  
  
#启动监控模块  
monitor(){  
    docker-compose up -d ruoyi-monitor-admin  
}  
  
#启动程序模块  
start(){  
    docker-compose up -d ruoyi-xxl-job-admin ruoyi-server1 ruoyi-server2  
}  
  
build(){  
    docker build -t ruoyi/ruoyi-monitor-admin:4.3.0-beta2 /root/docker/monitor-admin/  
    docker build -t ruoyi/ruoyi-server:4.3.0-beta2 /root/docker/server/  
    docker build -t ruoyi/ruoyi-xxl-job-admin:4.3.0-beta2 /root/docker/xxl-job-admin/  
}  
  
restart(){  
    docker-compose stop ruoyi-server1  
    sleep 3  
    docker-compose up -d ruoyi-server1  
    sleep 30  
    docker-compose stop ruoyi-server2  
    sleep 3  
    docker-compose up -d ruoyi-server2  
}  
  
#停止程序模块  
stop(){  
    docker-compose stop ruoyi-xxl-job-admin ruoyi-server1 ruoyi-server2  
}  
  
#关闭所有模块  
stopall(){  
    docker-compose stop  
}  
  
#删除所有模块  
rm(){  
    docker-compose rm  
}  
  
#删除Tag为空的镜像  
rmiNoneTag(){  
    docker images|grep none|awk '{print $3}'|xargs docker rmi -f  
}  
  
#根据输入参数,选择执行对应方法,不输入则执行使用说明  
case "$1" in  
"port")  
    port  
;;  
"mount")  
    mount  
;;  
"base")  
    base  
;;  
"monitor")  
    monitor  
;;  
"start")  
    start  
;;  
"restart")  
    restart  
;;  
"build")  
    build  
;;  
"stop")  
    stop  
;;  
"stopall")  
    stopall  
;;  
"rm")  
    rm  
;;  
"rmiNoneTag")  
    rmiNoneTag  
;;  
*)  
    usage  
;;  
esac

你可能感兴趣的:(docker,vue.js,jar)