官方MS页面建议存在“众所周知”的环境变量,这些变量应该由“官方.NET映像”设置。坦率地说,这似乎是正确的,但根据我的经验,即使我在容器中运行应用程序,它们也总是设置为“false”。我搜索了一些用法和这就是我发现的的例子
当我在一个普通的.net 5.0应用程序中遵循同样的规则时,我总是从下面这个程序中得到“false”:
private bool InDocker { get { return Environment.GetEnvironmentVariable("DOTNET_RUNNING_IN_CONTAINER") == "true";} }
同样的结果,如果我尝试复数版本: DOTNET_RUNNING_IN_CONTAINERS,我也尝试在我的Dockerfile中手动设置变量,如下所示:
ENV DOTNET_RUNNING_IN_CONTAINER = true
我做错什么了?
发布于 2022-10-06 13:54:26
我的问题是,我还在Dockerfile中使用相同的名称设置了自己的ENV变量,这导致了对原始变量的重写。
在下面的图中,我重新命名了自己的ENV变量,并将其设置为true,如下所示:
ENV DOTNET_RUNNING_IN_CONTAINER_PH = true
也许我应该把它设置为string:
ENV DOTNET_RUNNING_IN_CONTAINER_PH =“真”
非常感谢拉尔夫指出了非常好的暗示。如果你用这种方式来写一篇文章,我会给出答案:o)
https://stackoverflow.com/questions/73972395
复制相似问题