Asp.net core ASP.NET Core w/Tools for Docker环境Stage的名称
我使用适用于Windows的Docker Desktop和适用于Docker的工具为我的ASP.NET核心创建了配置。当我运行配置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
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
添加一个。。。?