【问题标题】:Get ASPNETCORE_ENVIRONMENT in core console app in container在容器的核心控制台应用程序中获取 ASPNETCORE_ENVIRONMENT
【发布时间】:2019-10-04 12:18:37
【问题描述】:

我有一个在 Kubernetes 上的容器中运行的 ASP.NET 核心控制台应用程序。在 deployment.yaml 我设置了环境变量:

env:
   - name: "ASPNETCORE_ENVIRONMENT"
     value: "Development"

在控制台应用程序中,我有以下代码:

static void Main(string[] args)
 {
            Console.WriteLine("Env: " + Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"));
 }

但是 ASPNETCORE_ENVIRONMENT 是空的,我怎样才能得到配置的环境变量呢?我在核心 webapi 项目中使用相同的步骤,然后我得到的变量如下:

public Startup(IHostingEnvironment env)
{
     env.EnvironmentName
}

这在核心 webapi 中有效,但我在控制台应用程序中没有 IHostingEnvironment。

【问题讨论】:

    标签: asp.net-core kubernetes containers


    【解决方案1】:

    我们使用这个模板在我们的 Kubernetes 集群中运行一个 ASP.NET Core 应用程序:

    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      namespace: <namespace>
      name: <application name>
    spec:
      replicas: 1
      minReadySeconds: 15
      strategy:
        type: RollingUpdate
        rollingUpdate:
          maxSurge: 1
          maxUnavailable: 0
      template:
        metadata:
          labels:
            app: <app-label>
        spec:
          containers:
            - name: <container-name>
              image: <image-name>
              ports:
                - containerPort: 80
              env:
                - name: ASPNETCORE_ENVIRONMENT
                  value: "Release"
    

    【讨论】:

    • 这与我所做的相同,除了 ASPNETCORE_ENVIRONMENT 周围的额外“。我试过没有它,没有任何区别。你是否将此部署脚本与 asp.net 核心控制台一起使用申请?
    • 此配置用于部署 ASP.NET Core MVC 应用程序。当你使用docker run -e ASPNETCORE_ENVIRONMENT=Release &lt;image-name&gt; 启动你的容器镜像时会发生什么?看到环境变量的输出了吗?
    • 那么确实有效。但是我不使用那个运行命令,猜猜 Kubernetes 内部是这样做的?
    • 否,但这意味着您的程序可以正常工作。但是如果你的配置看起来像我上面的那样,它也应该在 Kubernetes 中工作。
    • 这个答案帮助了我,以便我可以正确编辑我的部署文件以使用开发环境。
    【解决方案2】:

    我想我已经找到了“原因”。我想在“静态程序()”方法中阅读“ASPNETCORE_ENVIRONMENT”,它是空的。但是当我在“void Main(string [] args)”方法中执行相同操作时,它被设置并按预期工作。

    static void Main(string[] args)
    {
        string env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
    }
    

    【讨论】:

      猜你喜欢
      • 2019-02-02
      • 2018-05-14
      • 2019-01-26
      • 1970-01-01
      • 2021-01-29
      • 2019-09-26
      • 2019-07-16
      • 2020-11-30
      • 1970-01-01
      相关资源
      最近更新 更多