我使用VS2017在项目中添加了Docker支持(右键单击项目> Add> Docker Support),这为我创建了一个Dockerfile并更新了launchsettings.json。
我有以下launchsettings.json
"Docker": {
"commandName": "Docker",
"launchBrowser": true,
"launchUrl": "{Scheme}://localhost:{ServicePort}",
"environmentVariables": {
"TEST": "Test value"
}
}
但是,当我执行docker inspect
时,在容器上看不到环境变量。
由于我无权访问docker-compose
文件,因此在调试时注入环境变量的建议方法是什么?
答案 0 :(得分:2)
我一直在寻找相同的答案,最终找到了这个博客: https://briankeating.net/post/VS2019-Docker-ASPnet-Core-Evnrionment-Variables
涉及两个步骤:
在项目中创建一个新的文本文件,例如:Dockerfile.env
。您可以在文件内部每行添加一个环境变量,如下所示:DEMO=VALUE
编辑您的项目.csproj
文件,并在PropertyGroup
中添加一行,该行中还包含带有标签TargetFramework
的{{1}}标签。
这看起来类似于:
DockerfileRunEnvironmentFiles
此后,您便可以在调试期间在.env文件中定义环境变量。
答案 1 :(得分:2)
在 launchSettings.json
中,您必须在配置文件下添加一个部分,内容如下:
"Docker": {
"commandName": "Docker",
"launchBrowser": true,
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"publishAllPorts": true,
"useSSL": true
}
如果您添加了 docker 支持,您应该已经看到名为 docker
的条目。
只需在 environmentVariables
我的完整launchSettings.json
:
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:52330",
"sslPort": 44374
}
},
"$schema": "http://json.schemastore.org/launchsettings.json",
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
}
},
"DataApi": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "https://localhost:5001;http://localhost:5000"
},
"Docker": {
"commandName": "Docker",
"launchBrowser": true,
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
},
"publishAllPorts": true,
"useSSL": true
}
}
}