.NetCore 使用Jenkins发布多环境下的项目并适配数据库EFCore数据库更新及替换配置文件
说明
1、git上的配置地址可能都是本地环境,提交到git server后怎么来使用发布不同环境?
2、关于EFCore本地数据库有更新的情况 添加了 Migrations文件 怎么在构建的时候去更新不同环境下的数据库?
下面就来解决这两个问题
1、在测试服务器上分别建立开发、测试 两个目录用于放.NetCore发布文件(发布的.NetCore 用IISHosting方式)
2、在每个目录下建一个对应的配置文件(服务器环境下的配置文件,用作替换)
如下:发布2个站点(授权认证(Identityserver4 和 UserApi))
开发内测环境(KF)
测试环境(CS)
构建jenkins相关任务
开发内测环境
测试环境下
配置Git获取代码
添加Windows批处理
下面说下命令:
cd D: cd D:\Web\KF\Idr4 rd /s /q D:\Web\KF\Idr4 cd "%WORKSPACE%\IdentityServices" dotnet restore dotnet build dotnet publish -o D:\Web\KF\Idr4 copy D:\Web\KF\Idr4Config_KF\appsettings.json D:\Web\KF\Idr4
发布之前删除发布的目录 如下操作:
cd D: cd D:\Web\KF\Idr4 rd /s /q D:\Web\KF\Idr4
然后就是dotnetcore相关命令 还原、构建生成 、发布
cd "%WORKSPACE%\IdentityServices" dotnet restore dotnet build dotnet publish -o D:\Web\KF\Idr4
最后在将服务器配置文件复制到网站发布目录
EFCore相关操作很遇到的问题
由于Identityserver4是用数据库脚本创建的数据,如需要使用模型生成Migrations更新数据库怎么来用?
都知道在实际业务中 数据库更新添加了Migrations文件 发布后需要更新数据库
接下来看下另外一个站点UserApi的配置
cd D: cd D:\Web\KF\UserApi rd /s /q D:\Web\KF\UserApi cd "%WORKSPACE%\UserServicesApi" copy D:\Web\KF\UserApiConfig_KF\appsettings.json "%WORKSPACE%\UserServicesApi" dotnet restore dotnet build dotnet ef database update -c UserDbContext dotnet publish -o D:\Web\KF\UserApi
这里就会存在配置文件和数据库更新的一个先后问题,需要先拷贝配置文件到目录,这里有一个小小的陷阱
就是拷贝的服务器配置文件是拷贝到git的工作目录而不是发布出来的目录(这里与IdentityServer4)有区别,拷贝到发布目录是无法执行下面添加的工具的命令
所以先拷贝文件,然后执行相关dotnet命令 最后发布 就OK了
实际效果
针对多环境下只需要在服务器上多设置几个目录拷贝相关环境下的配置文件即可
开发内测环境:
Idr4 在 20000端口
UserApi 在20011端口
测试环境:
Idr4 在 30000端口
UserApi 在30011端口
小小的修改下代码说明看效果 访问下内测地址:
http://192.168.0.233:20011/swagger/index.html
访问下测试地址
http://192.168.0.233:30011/swagger/index.html
多环境多站点自动发布成功了~~
- 将Oracle数据库改为归档模式并启用RMAN备份 如下Linux环境下对Oracle单节点数据库采用文件系统情况的配置归档模式过程。首先查看数据库归档模式和磁盘使用情况,确定归档文件放到什么位置。
- 不同环境(配置文件)下的项目发布
- go项目中使用数据库的配置文件
- maven发布时在不同的环境使用不同的配置文件
- Tomcat重新发布项目后配置文件不更新的问题
- maven发布时在不同的环境使用不同的配置文件
- 通过环境变量设置WEB项目数据源(Spring)及其项目配置文件路径,动态更新数据源及项目配置
- 4 springboot项目集成使用disconf,配置文件更新及回调
- [原创]jPagerBar1.2发布-jquery分页插件(一个适合Ajax+JSON+jQuery环境使用的多功能页码栏插件)(Demo、源文件下载已更新)
- windows环境下使用jenkins自动部署发布项目(eclipse + svn + maven + tomcat + jenkins),注意是windows环境
- 通过环境变量设置WEB项目数据源(Spring)及其项目配置文件路径,动态更新数据源及项目配置
- jenkins发布项目到远程主机上,配置两台linux如何使用SSH免密码登录
- 遇到问题----java----myeclipse或者eclipse发布的项目时配置文件不更新或者无配置文件
- jenkins发布项目到远程主机上,配置两台linux如何使用SSH免密码登录
- 使用websphere开发J2EE项目时,在服务器配置文件->“环境”->“类路径”中添加的ORACLE的JDBC文件classes12.zip文件是否有效呢?
- 遇到问题----java----myeclipse或者eclipse发布的项目时配置文件不更新或者无配置文件
- 使用webpack配置项目中的常量以及替换文件内容
- [原创]jPagerBar1.2发布(一个适合Ajax+JSON+jQuery环境使用的多功能页码栏插件)(Demo、源文件下载已更新)
- 一个脚本搞定开发环境tomcat的部署更新,配置文件替换,图片备份等等
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题