配置
这里使用 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"];