Spring-Cloud 微服务 Docker 部署

Spring-Cloud 微服务 Docker 部署

1-介绍

基于SpringBoot | Spring Cloud & Alibaba | Mybatis-Plus | Vue3 | vite2 | TypeScript | Ant-Design-Vue UI的多租户SaaS开发框架

2-特性

  • 多重隔离控制:物理隔离&&逻辑隔离,共享多租户&&隔离多租户

  • 动态多源策略:动态源增减&&租户动态识别源

  • 租户控制优化:通用数据&&混合租户&&独立租户多种租户模式,自动拦截,开发无感知

  • 权限控制优化:部门&&岗位&&用户多级可控,自动拦截,开发无感知

  • 租户可配菜单:多种混合模式控制租户菜单

  • 组织管理优化:更完善的组织架构操作与管理逻辑

  • 微聚合多前端:公共抽离,降低系统重复冗余


3-系统需求

需求 版本
JDK >=17
Mysql >=8.0+
Redis >=3.0
Maven >=3.0
Node >=16
nacos >=2.0.0
sentinel >=1.6.0

4-项目打包

4.1-后端打包

4.1.1-执行打包脚本
打包时建议通过idea | EclipseMaven进行打包,package.bat偶尔会出现莫名bug 不同模块版本会生成在xueyi/xueyi-xxxx模块下target文件夹
@echo off
echo.
echo [信息] 打包Web工程,生成war/jar包文件。
echo.

%~d0
cd %~dp0

cd ..
call mvn clean package -Dmaven.test.skip=true

pause

4.2-前端打包

4.2.1-执行打包脚本
构建打包成功之后,会在对应模块的根目录生成 dist 文件夹,里面就是构建打包好的文件,通常是 ***.js 、***.css、index.html 等静态文件。
@echo off
echo.
echo [信息] 打包Web工程,生成dist文件。
echo.

%~d0
cd %~dp0

cd ..
npm run build:prod

pause

5-项目部署

5.1-执行复制脚本

#!/bin/sh

# 复制项目的文件到对应docker路径,便于一键生成镜像。
usage() {
	echo "Usage: sh copy.sh"
	exit 1
}

# copy sql
echo "begin copy sql "
cp ../sql/quartz.sql ./mysql/db
cp ../sql/xueyi_1.sql ./mysql/db
cp ../sql/xueyi_2.sql ./mysql/db
cp ../sql/xy_config.sql ./mysql/db

# copy html
echo "begin copy html "
cp -r ../xueyi-ui/main/dist/** ./nginx/html/main
cp -r ../xueyi-ui/administrator/dist/** ./nginx/html/administrator


# copy jar
echo "begin copy xueyi-gateway "
cp ../xueyi-gateway/target/xueyi-gateway.jar ./xueyi/gateway/jar

echo "begin copy xueyi-auth "
cp ../xueyi-auth/target/xueyi-auth.jar ./xueyi/auth/jar

echo "begin copy xueyi-visual "
cp ../xueyi-visual/xueyi-monitor/target/xueyi-visual-monitor.jar  ./xueyi/visual/monitor/jar

echo "begin copy xueyi-modules-system "
cp ../xueyi-modules/xueyi-system/target/xueyi-modules-system.jar ./xueyi/modules/system/jar

echo "begin copy xueyi-modules-tenant "
cp ../xueyi-modules/xueyi-tenant/target/xueyi-modules-tenant.jar ./xueyi/modules/tenant/jar

echo "begin copy xueyi-modules-file "
cp ../xueyi-modules/xueyi-file/target/xueyi-modules-file.jar ./xueyi/modules/file/jar

echo "begin copy xueyi-modules-job "
cp ../xueyi-modules/xueyi-job/target/xueyi-modules-job.jar ./xueyi/modules/job/jar

echo "begin copy xueyi-modules-gen "
cp ../xueyi-modules/xueyi-gen/target/xueyi-modules-gen.jar ./xueyi/modules/gen/jar

echo "begin copy xueyi-modules-sample "
cp ../xueyi-modules/xueyi-sample/target/xueyi-modules-sample.jar ./xueyi/modules/sample/jar

echo "begin copy xueyi-modules-sms "
cp ../xueyi-modules/xueyi-sms/target/xueyi-modules-sms.jar ./xueyi/modules/sms/jar

5.2-编写配置文件

docker-compose.yml
Docker Compose 使用的一个步骤为:
	使用 Dockerfile 文件定义应用程序的环境
	使用 docker-compose.yml 文件定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
	执行 docker-compose up 命今来创建并启动所有服务。
三者关系:
    deploy.sh -> docker-compose.yml -> Dockerfile
5.2.1-docker-compose.yml
version : '3.8'
services:
 xueyi-nacos:
   container_name: xueyi-nacos
   image: nacos/nacos-server
   build:
     context: nacos
   environment:
     - MODE=standalone
   volumes:
     - ./docker/nacos/logs/:/home/nacos/logs
     - ./docker/nacos/conf/application.properties:/home/nacos/conf/application.properties
   ports:
     - "8848:8848"
     - "9848:9848"
     - "9849:9849"
   # depends_on:
     # - xueyi-mysql
   # links:
     # - xueyi-mysql
 # xueyi-mysql:
   # container_name: xueyi-mysql
   # image: mysql:8.0.26
   # build:
     # context: sql
     # dockerfile: Dockerfile
   # ports:
     # - "3306:3306"
   # volumes:
     # - ./docker/mysql/conf:/etc/mysql/co
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xinyi_java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
OSZAR »