通过 docker-compose 发送参数不适用于 .NET6 中的应用程序设置
Sending parameter by docker-compose does not work on appsettings in .NET6
我有一个 docker-compose 与 ConnectionString 的环境变量:
services:
nameservice:
...
environment:
ConnectionStrings__mysqlDatabase: "Server=db;Uid=root;Pwd=password;"
我在控制台程序的 .NET 端有一个 AppSettings 文件 (.NET6):
{
"ConnectionStrings": {
"mysqlDatabase": "Server=localhost;Uid=root;Pwd=password;"
}
}
和我的 program.cs :
IConfiguration Config = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build();
ConnectionStringConstant.mysqlDatabase = Config.GetConnectionString("mysqlDatabase");
我的问题是,在 docker 中创建容器后,它会将值保留在 AppSettings 中(这对生产环境不利)并且不会获取 docker 传递的值-撰写文件。
你能帮帮我吗?
手动构建配置(不使用主机)时需要设置环境变量支持:
var configurationRoot = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddEnvironmentVariables()
.Build();
阅读更多:
我有一个 docker-compose 与 ConnectionString 的环境变量:
services:
nameservice:
...
environment:
ConnectionStrings__mysqlDatabase: "Server=db;Uid=root;Pwd=password;"
我在控制台程序的 .NET 端有一个 AppSettings 文件 (.NET6):
{
"ConnectionStrings": {
"mysqlDatabase": "Server=localhost;Uid=root;Pwd=password;"
}
}
和我的 program.cs :
IConfiguration Config = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build();
ConnectionStringConstant.mysqlDatabase = Config.GetConnectionString("mysqlDatabase");
我的问题是,在 docker 中创建容器后,它会将值保留在 AppSettings 中(这对生产环境不利)并且不会获取 docker 传递的值-撰写文件。
你能帮帮我吗?
手动构建配置(不使用主机)时需要设置环境变量支持:
var configurationRoot = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddEnvironmentVariables()
.Build();
阅读更多: