提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
ruoyi-cloud通过bootstrap.yml文件设置多环境配置
前言
最近在学习ruoyi-cloud框架,发现在部署上线的时候要设置成多环境配置才能区分测试环境、正式环境,从而把代码提交到相应的分支,我是通过配置三个.yml文件来实现的:bootstrap.yml、bootstrap-dev.yml、bootstrap-prod.yml;通过提交不同的配置文件来实现发布不同环境的代码。
一、nacos配置
1.1 以下是导入的ruoyi-cloud的nacos配置
1.2 创建两个命名空间dev、prod
1.3 将public命名空间的内容克隆到dev和prod
注意:克隆到dev的内容不变,克隆到prod的内容要修改一下:把dev改成prod如图所示
1.4 最终样式
二、修改ruoyi-cloud工程(以system微服务举例)
2.1 新增两个文件,分别命名bootstrap-dev.yml、bootstrap-prod.yml
修改内容
bootstrap.yml的内容修改为:
spring:
profiles:
#开发环境
active: dev
#正式环境
# active: prod
2.2 bootstrap-dev.yml的内容复制原bootstrap.yml里面的内容再做如下修改
最终代码如下:
# Tomcat
server:
port: 9201
# Spring
spring:
application:
# 应用名称
name: ruoyi-system
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: 192.168.6.15:8848
namespace: 798d3a99-ad9d-4c92-952a-08c366685f30
# username: nacos
# password: nacos
config:
# 配置中心地址
server-addr: 192.168.6.15:8848
# username: nacos
# password: nacos
# 配置文件格式
file-extension: yml
# 共享配置
shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
namespace: 798d3a99-ad9d-4c92-952a-08c366685f30
2.3 bootstrap-prod.yml的内容复制原bootstrap.yml里面的内容再做如下修改
最终代码如下:
# Tomcat
server:
port: 9201
# Spring
spring:
application:
# 应用名称
name: ruoyi-system
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: 192.168.6.15:8848
namespace: 317f0385-6c56-4cf6-9493-35557a1e4397
# username: nacos
# password: nacos
config:
# 配置中心地址
server-addr: 192.168.6.15:8848
# username: nacos
# password: nacos
# 配置文件格式
file-extension: yml
# 共享配置
shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
namespace: 317f0385-6c56-4cf6-9493-35557a1e4397
三、验证效果
3.1 启动ruoyi-system验证
3.1.1 bootstrap.yml文件选择 dev
启动成功。
3.1.2 现在我们换成prod的配置启动,同时修改一下数据库信息(把mysql连接改成错误的,如果连不上则证明切换成功了)
3.1.2.1 切换为prod
3.2.1.2 启动ruoyi-system(本次不修改nacos里的mysql配置试试)
可以看到确实启动成功了。
3.2.1.3 现在修改nacos里的mysql配置再试试
3.2.1.4 启动ruoyi-system的prod配置
这次启动报错,提示找不到这个xyz的库。
以上,给ruoyi-cloud通过.yml文件配置多环境的验证完成了。
注意:如果在测试过程中连接nacos报错,但配置文件检查又没有问题,则将项目重新构建一遍基本上都能解决!
总结
通过这种配置可以实现,当你提交测试代码的时候就放开微服务bootstrap.yml里面的dev。让代码合并到测试的分支test,当你要提交正式代码的时候就放开微服务bootstrap.yml里面的prod,提交到正式分支master。这样就可以省去很大的麻烦来修改大量的配置,代码打包镜像的时候也不容易出错。这样其他的问题都可以在nacos那里修改了。
当然,配置多环境还有其他方法,大家也可以尝试其他的方法试试!