我有3个配置在服务中:
1 - appsettings.development.json
2 - appsettings.testing.json
3 - appsettings.production.json
我在launchsettings.json
中也有3个启动设置
{
"profiles": {
"DevelopmentDockerProfile" {
"commandName": "Docker",
"environmentVariables": {
"DOTNET_ENVIRONMENT": "development"
}
},
"ProductionDockerProfile" {
"commandName": "Docker",
"environmentVariables": {
"DOTNET_ENVIRONMENT": "production"
}
},
"TestingDockerProfile" {
"commandName": "Docker",
"environmentVariables": {
"DOTNET_ENVIRONMENT": "testing"
}
}
}
}
而且我可以正常运行服务,只在本地机器上使用正确的配置。
发布时无法通过服务推送DOTNET_ENVIRONMENT
变量。
有没有办法将环境变量绑定到publishProfile.pubxml
或其他任何地方,环境变量DOTNET_ENVIRONMENT
将神奇地出现在主机上的docker服务中?
发布于 2021-11-18 03:55:26
简短的回答
不,没有这样的选择。
更长的一个
首先,您可以使用Environment.SetEnvironmentVariable("name", "value")
轻松地设置环境变量。但这可能不是你想要的。
您可能希望在您使用的容器/编排工具的配置中配置环境变量,或者在docker命令行(docker run -e VARIABLE_NAME=value
)中设置,或者在Docker Compose的docker-compose.yml
中设置,或者在k8s的服务YAML配置中设置。
https://stackoverflow.com/questions/70019173
复制相似问题