【问题标题】:How to push the correct configuration data with C# worker service to swarm/kubernetes?如何使用 C# worker 服务将正确的配置数据推送到 swarm/kubernetes?
【发布时间】:2021-12-29 07:16:30
【问题描述】:

我有 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 服务中?

【问题讨论】:

    标签: docker kubernetes .net-core swarm


    【解决方案1】:

    简答

    不,没有这样的选择。

    更长的

    首先,您可以使用Environment.SetEnvironmentVariable("name", "value") 轻松设置环境变量。但这可能不是你想要的。

    您可能想要在配置中为您使用的容器/编排工具配置环境变量,可以在 docker 命令行 (docker run -e VARIABLE_NAME=value) 或docker-compose.yml 中为 Docker Compose 或在服务 YAML 配置中为 k8s 设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-27
      • 2018-09-26
      相关资源
      最近更新 更多