zoukankan      html  css  js  c++  java
  • .Net Core DevOps

    之前发布了 《.Net Core DevOps -免费用Azure四步实现自动化发布(CI/CD)》之后,有很多朋友私信我说如何替换 appsettings 里面的 ConnectionStrings的问题。我的解决方案是通过Shell在编译前替换需要替换的字符串。以下是具体步骤:

    1.项目添加 appsettings.Production.json

    添加占位符例如{Writable},用于Shell脚本替换用
    

    2. 打开解决方案的 azure-pipelines.yml 添加一个新的Task

    注:```ls```  列出目录(主要是看azure 的 devops 的目录结构,可以不写)
    #sed 将文件内所有的 {Writable} 替换成Azure的  $(Writable)
    sed -i 's/{Writable}/$(Writable)/g' WebNotebook/appsettings.Production.json 
    

    3.将yml的$(Writable) 配置到Azure的 Variables 里面

    4.提交代码,查看是否替换成功

    检查Job执行情况
    

    进入docker查看appsettings,替换成功
    
    root@iZs9kgd0x5xmhaZ:~# docker exec -it 715afabf4ac7  bash
    root@715afabf4ac7:/app# ls
    WebNotebook.Views.dll  WebNotebook.dll                     WebNotebook.runtimeconfig.json  appsettings.json
    WebNotebook.Views.pdb  WebNotebook.pdb                     appsettings.Development.json    web.config
    WebNotebook.deps.json  WebNotebook.runtimeconfig.dev.json  appsettings.Production.json     wwwroot
    root@715afabf4ac7:/app# cat appsettings.Production.json
    {
      "ConnectionStrings": {
        "Writable": "Server=127.0.0.1;Database=Demo;Integrated Security=true;",
        "ReadOnly": "Server=127.0.0.1;Database=Demo;Integrated Security=true;"
      },
      "Logging": {
        "LogLevel": {
          "Default": "Debug",
          "System": "Information",
          "Microsoft": "Information"
        }
      }
    }
    root@715afabf4ac7:/app#
    
  • 相关阅读:
    读书
    Web前端知识体系精简
    让你分分钟理解 JavaScript 闭包
    常用 Git 命令使用教程
    js库写法
    Gitlab的使用
    appium-环境搭建(一)
    Selenium-几种等待方式
    Selenium-免登录的实现
    Selenium-百度登录简单例子
  • 原文地址:https://www.cnblogs.com/zhaozhengyan/p/azure-replace-appsettings.html
Copyright © 2011-2022 走看看