【问题标题】:ASP.NET Core w/ Tools for Docker EnvironmentName for StageASP.NET Core w/Tools for Docker EnvironmentName for Stage
【发布时间】:2017-07-15 21:35:02
【问题描述】:

我使用 Docker Desktop for WindowsVS Tools for Docker 为我的 ASP.NET Core 创建了配置 Staging。当我运行配置Staging 时,env.EnvironmentName 不断出现Production 而不是Staging

在文件docker-compose.dev.staging.yml 中,我还将ASPNETCORE_ENVIRONMENT 设置为Staging。但这也无济于事。当然,我还需要把它放在其他地方,因为当我发布时,我希望 Staging 得到 Staging EnvironmentName

environment:
  - ASPNETCORE_ENVIRONMENT=Staging

我错过了什么?

更新

因此,Visual Studio Tools for Docker 中似乎存在错误。它不尊重配置设置并获取文件docker-compose.dev.release.yml 而不是docker-compose.dev.staging.yml。因此,如果要将环境更改为staging,则需要更改该实际文件。因此,在staging 中调试时,将以下内容添加到您的release 文件中:

environment:
  - ASPNETCORE_ENVIRONMENT=Staging

世界一切都会好起来的。在部署到主 docker-compose 文件时,您也需要这样做。烦人,但你还要做什么?

另外,添加图片名称,如:

image: docker.appcatalyst.com:5000/symptom_checker_pam_cms:staging

然后您将获得staging 标记,用于部署到登台。希望这个错误很快就会得到修复。

更新 2

现在,我了解了 Docker 的工作原理。基本上你需要在docker-compose.yml 文件中传递环境变量。因此,在运行 staging 环境的服务器上,您将添加我在上面放置的内容,然后将 docker up 与该 yaml 文件一起添加。至于在您自己的机器上,如果您想使用 stage 设置,您只需添加/删除(或注释掉)环境设置。有点痛。希望VS Tools for Docker 修复此行为以进行调试。这将使编程稍微容易一些。

【问题讨论】:

    标签: asp.net-core docker-for-windows docker-desktop docker


    【解决方案1】:

    VS 运行 docker-compose 命令时,会按顺序查找以下 yaml 文件:

    1. docker-compose.yml
    2. docker-compose.override.yml
    3. docker-compose.vs.debug.yml|docker-compose.vs.release.yml(分别用于Debug|Release)

    我们还不支持用户定义的 yaml 文件,例如 docker-compose.dev.staging.yml。

    已经在docker-compose.override.yml中设置了ASPNETCORE_ENVIRONMENT,这里是定义设置以在本地机器上运行应用程序的地方。

    environment:
      - ASPNETCORE_ENVIRONMENT=Development
    

    您可以在该文件中将 Development 更改为 Staging。

    【讨论】:

    • 如何添加其他文件,如果我选择“添加”,则列表为空。好像被封了!我有一个docker-compost.override.yml 文件,但我想为release 添加一个文件...?
    猜你喜欢
    • 1970-01-01
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多