• .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:WebKFIdr4
    rd /s /q  D:WebKFIdr4
    cd "%WORKSPACE%IdentityServices"
    dotnet restore 
    dotnet build
    dotnet publish  -o D:WebKFIdr4
    copy D:WebKFIdr4Config_KFappsettings.json D:WebKFIdr4

    发布之前删除发布的目录 如下操作:

    cd D:
    cd D:WebKFIdr4
    rd /s /q  D:WebKFIdr4

     然后就是dotnetcore相关命令 还原、构建生成 、发布

    cd "%WORKSPACE%IdentityServices"
    dotnet restore 
    dotnet build
    dotnet publish  -o D:WebKFIdr4

     最后在将服务器配置文件复制到网站发布目录

    EFCore相关操作很遇到的问题

    由于Identityserver4是用数据库脚本创建的数据,如需要使用模型生成Migrations更新数据库怎么来用?

    都知道在实际业务中 数据库更新添加了Migrations文件 发布后需要更新数据库

    接下来看下另外一个站点UserApi的配置

    cd D:
    cd D:WebKFUserApi
    rd /s /q  D:WebKFUserApi
    cd "%WORKSPACE%UserServicesApi"
    copy D:WebKFUserApiConfig_KFappsettings.json "%WORKSPACE%UserServicesApi"
    dotnet restore 
    dotnet build
    dotnet ef database update -c UserDbContext
    dotnet publish  -o D:WebKFUserApi

    这里就会存在配置文件和数据库更新的一个先后问题,需要先拷贝配置文件到目录,这里有一个小小的陷阱

    就是拷贝的服务器配置文件是拷贝到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

    多环境多站点自动发布成功了~~

  • 相关阅读:
    【CodeForces】889 C. Maximum Element 排列组合+动态规划
    【CodeForces】889 B. Restoration of string
    使用torchsummary打印torch模型结构,包括每层名字以及形状
    任意角度的场景文本检测论文简单总结
    vi快捷键
    sklearn框架使用例子,多种分类方法的集合,方便模型的融合
    卷积核的参数量和计算量
    windows下shell命令行的常用操作命令
    MARKDOWM书写规范
    keras使用horovod多gpu训练
  • 原文地址:https://www.cnblogs.com/liyouming/p/9290404.html
Copyright © 2020-2023  润新知