Asp.net core ASP.NET Core w/Tools for Docker环境Stage的名称

Asp.net core ASP.NET Core w/Tools for Docker环境Stage的名称,asp.net-core,docker-for-windows,docker-desktop,docker,Asp.net Core,Docker For Windows,Docker Desktop,Docker,我使用适用于Windows的Docker Desktop和适用于Docker的工具为我的ASP.NET核心创建了配置。当我运行配置Staging时,env.EnvironmentName会一直显示为Production而不是Staging 在文件docker compose.dev.staging.yml中,我还将ASPNETCORE\u环境设置为staging。但这也没用。当然,我也需要把它放在其他地方,因为当我发布时,我希望Staging获得StagingEnvironmentName en

我使用适用于Windows的Docker Desktop和适用于Docker的工具为我的ASP.NET核心创建了配置。当我运行配置
Staging
时,
env.EnvironmentName
会一直显示为
Production
而不是
Staging

在文件
docker compose.dev.staging.yml
中,我还将
ASPNETCORE\u环境设置为
staging
。但这也没用。当然,我也需要把它放在其他地方,因为当我发布时,我希望
Staging
获得
Staging
EnvironmentName

environment:
  - ASPNETCORE_ENVIRONMENT=Staging
我错过了什么

更新

因此,
Visual Studio Tools for Docker
中似乎有一个bug。它不尊重配置设置,而是获取文件
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
能够出于调试目的修复此行为。这将使编程稍微容易一些。

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

  • docker-compose.yml
  • docker-compose.override.yml
  • docker compose.vs.debug.yml | docker-compose.vs.release.yml(分别用于调试|发布)
  • 我们还不支持用户定义的yaml文件,如docker-compose.dev.staging.yml

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

    environment:
      - ASPNETCORE_ENVIRONMENT=Development
    

    您可以在该文件中将开发更改为登台。

    如何添加其他文件,如果我选择“添加”,则列表为空。它似乎被锁定了!我有一个
    docker compost.override.yml
    文件,但我想为
    release
    添加一个。。。?