4

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

在文件docker-compose.dev.staging.yml中,我也将其设置ASPNETCORE_ENVIRONMENTStaging。但这也无济于事。当然,我还需要把它放在其他地方,因为当我发布时我想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修复此行为以进行调试。这将使编程稍微容易一些。

4

1 回答 1

1

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

  1. 码头工人-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。

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

environment:
  - ASPNETCORE_ENVIRONMENT=Development

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

于 2017-05-01T21:21:39.470 回答