【发布时间】:2019-05-25 20:46:30
【问题描述】:
我有一个启用了 docker 支持的 ASP.NET core 2.2 Web 应用程序。我在这里创建了一个测试应用程序供审查here。
我在 VS 中使用 Docker 在本地运行它。我想将环境变量/秘密添加到应用程序设置秘密中,以覆盖 appsettings.json 文件中的值。为了在本地执行此操作,我尝试更改以下值:
但是,对于这两种情况,当我将变量值附加到我的 docker 实例和 printenv 时,我发现 ASPNETCORE_ENVIRONMENT 的变量仍然显示为 Development。
我像这样附加到正在运行的容器:
docker exec -t -i 4c05 /bin/bash
我已搜索解决方案中的所有文件。我在解决方案中的任何地方都找不到 ASPNETCORE_ENVIRONMENT 设置为 Development。但是,不知何故,环境变量仍被设置为该值。
可能出了什么问题?我想改变那个变量。一旦工作,我真正想做的是将连接字符串秘密添加到环境变量,以便可以通过 appsettings.json 文件在本地使用它,或者如果 aspnetcore Web 应用程序在容器中运行,则可以通过 docker 秘密环境变量使用它。我想我已经让这段代码工作了,只是变量没有按预期部署到正在运行的容器中。
谢谢
【问题讨论】:
-
你能告诉我你是如何寻找环境变量的吗?我看到你正在运行 bash,但这并没有告诉我你在理论上检查了 evnrionment 变量做了什么。您的 dockerfile 肯定会设置它(尽管有拼写错误/拼写错误)
-
嗨,丹,我正在运行这个:docker exec -t -i 4c83 /bin/bash。连接后,我运行 printenv。当然 4c83 是容器 id
-
我现在只是在尝试使用 docker-compose。我已在 Web 项目中添加了 Orchestrator 支持
-
你对 env 的使用对我来说似乎是正确的,fwiw。
-
我下载并运行了您的代码(在 Mac 上)并从
printenv:dropbox.com/s/1fsjx5650nt5sfo/… 打印了正确的环境变量 - 一定是 VS 正在做的事情?
标签: docker asp.net-core asp.net-core-mvc