使用 agile_config

https://github.com/dotnetcore/AgileConfig

配置

这里使用 sqlite ,然后数据表保存在卷中,但是发现它在升级时不会自动更新包,导致错误
添加节点时,使用 http://localhost:5000 或是 http://容器名:5000 ,因为是在容器中调用的。所以使用 5000 端口,或是使用外网地址:端口

version: '3.3'

services:
    agile_config:        
        container_name: agile_config # 容器名
        image: 'kklldog/agile_config:latest'
        environment:            
            TZ: Asia/Shanghai # 时区            
            adminConsole: true # 作为配置端            
            db__provider: sqlite # 使用 sqlite 保存数据
            # 将 sqlite 文件保存至了 agile_config_datas 目录下
            db__conn: "Data Source=/agile_config_datas/agile_config.db"
        restart: always
        volumes:
            - ./agileConfigData:/agile_config_datas
        networks:
            - nginx_default # 挂载至 nginx 的容器中

networks:
    nginx_default:
        external: true
version: '3.3'

# https://www.composerize.com/ # 在线 docker 命令转 docker comose 
# https://github.com/dotnetcore/AgileConfig

services:
    agile_config:
        # 容器名
        container_name: agile_config 
        image: 'kklldog/agile_config:latest'
        environment:
            # 时区
            - TZ=Asia/Shanghai
            # 作为配置端
            - adminConsole=true
            # 使用 sqlite 保存数据
            - db__provider=sqlite
            # 将 sqlite 文件保存至了 agile_config_datas 目录下,我会保存至卷中
            - 'db__conn=Data Source=/agile_config_datas/agile_config.db'
        ports:
            - '5010:5000'
        volumes:
            - agileConfigData:/agile_config_datas
volumes:
 # 设置一个卷,保存 sqlite 中的配置 
 agileConfigData:
   driver: local

客户端配置

// nuget AgileConfig

  //agile_config
  "AgileConfig": {
    "appId": "appConfig_demo",
    "secret": "xxxx",
    "nodes": "http://agileConfig.abc.com:7005", //多个节点使用逗号分隔,
    "name": "xi7",
    "tag": "tag1",
    "env": "DEV",
    "serviceRegister": { //服务注册信息,如果不配置该节点,则不会启动任何跟服务注册相关的服务 可选
      "serviceId": "net6", //服务id,全局唯一,用来唯一标示某个服务
      "serviceName": "net6MVC服务测试", //服务名,可以重复,某个服务多实例部署的时候这个serviceName就可以重复
      "ip": "127.0.0.1", //服务的ip 可选
      "port": 5005 //服务的端口 可选
    }
  }

客户端调用

var builder = WebApplication.CreateBuilder(args);
builder.Host.UseAgileConfig();

var name = app.Configuration["appConfig:appName"];
上一篇
下一篇