0
点赞
收藏
分享

微信扫一扫

jeecgBoot3.0快捷部署方案

山竹山竹px 2022-02-15 阅读 37

借鉴了官方指导,结合自身使用情况(基于内网使用)的一套docker-compose部署方案。

服务器

装了VMware Ubuntu20的Windows10

客户端

局域网内电脑

hosts修改

# 服务器
# 以管理员身份打开hosts
sudo vim /etc/hosts

#添加配置(ip以具体机器为准)
# jeecgboot
192.168.222.128   jeecg-boot-redis
192.168.222.128   jeecg-boot-mysql
192.168.222.128   jeecg-boot-system
#客户端
C:\Windows\System32\drivers\etc\hosts 添加配置,以实际IP地址为准
# erpbackend address
192.168.222.128   erpbackend

发布:

打jar包的时候,application.yml里的mysql地址是url: jdbc:mysql://jeecg-boot-mysql:3306/

redis地址是:host: jeecg-boot-redis,所以需要在服务器上配置hosts。

如果主机地址变了:

服务端部分:只需要先docker-compose down然后修改hosts里的ip地址,再docker-compose up -d即可。

客户端:需要改hosts对应的ip地址,以便前端能正常请求到后端服务。

前端的开发环境配置已经改成erpbackend,需要客户端配置hosts不然会访问不到后端服务。

开发:

本地电脑要配置hosts。

jeecg-boot-redis、jeecg-boot-mysql对应127.0.0.1 能访问本地数据库的地址即可。

镜像概览

最终需要四个镜像即可。其余的可以自行删掉。

容器概览

 最终部署完成后,只有这几个容器。

安装包概览

 backend

jeecg文件夹

就是/src/main/resources/jeecg这个文件夹及所有内容,里面主要是一些模板文件。

build.txt

sudo docker build -t backend:latest .

Dockerfile

FROM anapsix/alpine-java:8_server-jre_unlimited

MAINTAINER renqing.china@gmail.com

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

RUN mkdir -p /jeecg-boot/config/jeecg/

WORKDIR /jeecg-boot

EXPOSE 8080
# Dockerfile同级目录下有jeecg资源文件、jar包
ADD ./jeecg ./config/jeecg
ADD ./jeecg-boot-module-system-3.0.jar ./

CMD sleep 60;java -Djava.security.egd=file:/dev/./urandom -jar jeecg-boot-module-system-3.0.jar

 Jar

通过maven打包出来的最新jar包

frontend

dist

前端代码打出来的代码包

build.txt

sudo docker build -t frontend:latest .

Dockerfile 

FROM nginx
MAINTAINER renqing.china@gmail.com
VOLUME /tmp
ENV LANG en_US.UTF-8
RUN echo "server {  \
                      listen       80; \
                      location ^~ /jeecg-boot { \
                      proxy_pass              http://jeecg-boot-system:8080/jeecg-boot/; \
                      proxy_set_header        Host jeecg-boot-system; \
                      proxy_set_header        X-Real-IP \$remote_addr; \
                      proxy_set_header        X-Forwarded-For \$proxy_add_x_forwarded_for; \
                  } \
                  #解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题 \
                  location / { \
                     root   /var/www/html/; \
                      index  index.html index.htm; \
                      if (!-e \$request_filename) { \
                          rewrite ^(.*)\$ /index.html?s=\$1 last; \
                          break; \
                      } \
                  } \
                  access_log  /var/log/nginx/access.log ; \
              } " > /etc/nginx/conf.d/default.conf \
    &&  mkdir  -p  /var/www \
    &&  mkdir -p /var/www/html

ADD dist/ /var/www/html/
EXPOSE 80
EXPOSE 443

mysql

 build.txt

sudo docker build -t mysql:latest .

Dockerfile

FROM mysql:8.0.19

MAINTAINER renqing.china@gmail.com

ENV TZ=Asia/Shanghai

RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

COPY ./jeecg-boot.sql /docker-entrypoint-initdb.d

jeecg-boot.sql

包括 create database ; use database; create table; insert  所有语句。

docker-compose.yml

version: '2'
services:
  jeecg-boot-mysql:
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_ROOT_HOST: '%'
      TZ: Asia/Shanghai
    restart: always
    container_name: mysql
    image: mysql:latest
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
      --max_allowed_packet=128M
      --default-authentication-plugin=caching_sha2_password
    ports:
      - 3306:3306

  jeecg-boot-redis:
    image: redis:6.2.1
    ports:
      - 6379:6379
    restart: always
    hostname: jeecg-boot-redis
    container_name: redis

  jeecg-boot-system:
    restart: on-failure
    depends_on:
      - jeecg-boot-mysql
      - jeecg-boot-redis
    container_name: backend
    image: backend:latest
    hostname: jeecg-boot-system
    ports:
      - 8080:8080
      
  jeecg-boot-view:
    restart: always
    container_name: frontend
    image: frontend:latest
    hostname: jeecg-boot-system
    ports:
      - 80:80

部署流程:

1.复制整套安装包到服务器

2.分别打 前端、后端、mysql的镜像

3.sudo docker-compose up  -d

4.测试部署效果

升级流程:

1.上传最新的jar和dist,覆盖旧文件

2.打新的前后端镜像

3.sudo docker-compose down

4.sudo docker-compose up -d

举报

相关推荐

0 条评论