【问题标题】:How can I get access to my docker containers environment variables in .Net Core?如何在 .Net Core 中访问我的 docker 容器环境变量?
【发布时间】:2019-12-26 15:11:28
【问题描述】:

我正在尝试访问在 .Net Core 上运行的 C# 代码中的一些 docker 环境变量。

在 VS 生成的 dockerfile 中,我添加了如下环境变量:

ENV EnvKey = "value"

在构建此映像并使用 VS 中的内置 Docker 启动选项启动实例后,我使用 docker inspect MyInstance 检查我的 docker 映像。

结果输出列出了我之前在“Config”->“Env”->“EnvKey”中定义的环境变量,所以我确定它在那里。

对于一些测试,我尝试使用以下代码访问它们:

var keys = Environment.GetEnvironmentVariables();

但是,这不会检索容器中包含的环境变量。

我还需要配置什么才能使其正常工作?

【问题讨论】:

  • 这是一个 ASP.NET 应用程序吗?
  • @peinearydevelopment 是的,Asp.Net Core 3.1
  • 你怎么理解keys不包含你的EnvKey

标签: c# docker .net-core


【解决方案1】:

问题实际上非常简单 - 就我而言,这在问题中是不可见的。

但我真正的环境变量键有一些“。”在里面。我用“_”替换了那些,现在它完美地工作了。

【讨论】:

    【解决方案2】:

    如果您正在运行 ASP.NET 应用程序,那么将 Dockerfile 更新为 ENV ASPNETCORE_EnvKey = "value" 应该可以解决问题。

    如果您正在计算机上运行其他一些 .NET 核心应用程序,请查看文档here。您似乎无法在机器级别执行此操作,但在您的 RUN 命令中,您必须通过您在那里调用的 dotnet 命令将“环境变量”传递给进程。

    【讨论】:

    • 还没有检查你的第二部分,但答案的第一部分并不是很有效。我阅读了关于 ASPNETCORE_Environment 参数的强制要求,但没有别的
    猜你喜欢
    • 2020-01-28
    • 2015-04-05
    • 2020-08-19
    • 2016-05-30
    • 2021-02-15
    • 1970-01-01
    • 2020-11-28
    • 2019-11-01
    • 2021-03-29
    相关资源
    最近更新 更多