ASP.NET Core w / Tools for Docker EnvironmentName for Stage

问题描述 投票:3回答:1

我使用Docker Desktop for Windows和VS 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环境的服务器上,您将添加我上面的内容,然后使用该yaml文件添加docker up。至于你自己的机器,如果你想使用你的stage设置,你需要添加/删除(或注释掉)环境设置。有点痛。希望VS Tools for Docker修复此行为以进行调试。这会使编程变得更容易一些。

asp.net-core docker-for-windows docker-desktop
1个回答
1
投票

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

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

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

ASPNETCORE_ENVIRONMENT已在docker-compose.override.yml中设置,其中是用于定义在本地计算机上运行应用程序的设置的位置。

environment:
  - ASPNETCORE_ENVIRONMENT=Development

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

© www.soinside.com 2019 - 2024. All rights reserved.