
说明
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
多环境多站点自动发布成功了~~