VS2017:将环境变量添加到Docker容器进行调试

时间:2018-10-22 15:40:10

标签: docker .net-core visual-studio-2017

我使用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文件,因此在调试时注入环境变量的建议方法是什么?

2 个答案:

答案 0 :(得分:2)

我一直在寻找相同的答案,最终找到了这个博客: https://briankeating.net/post/VS2019-Docker-ASPnet-Core-Evnrionment-Variables

涉及两个步骤:

  1. 在项目中创建一个新的文本文件,例如:Dockerfile.env。您可以在文件内部每行添加一个环境变量,如下所示:DEMO=VALUE

  2. 编辑您的项目.csproj文件,并在PropertyGroup中添加一行,该行中还包含带有标签TargetFramework的{​​{1}}标签。

    < / li>

这看起来类似于:

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
    }
  }
}