我有一个Blazor Webassembly项目,该项目已经泊坞化,并且正在尝试读取启动时在容器中设置的环境变量。 如果执行以下操作,则可以在容器中运行Shell并回显变量。
docker run -e DEBUG=false --name blazortest dockerizedclientsideblazor
但是,如果我尝试使用此命令在应用程序中读取环境变量。
Environment.GetEnvironmentVariable("DEBUG")
它返回为null,与尝试读取已装入文件的相同。 可以向我解释为什么会遇到这种情况吗?
我的Dockerfile看起来像这样。
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /app
COPY . ./
RUN ls -la ./
RUN dotnet publish -c Release -o output
FROM nginx:alpine
WORKDIR /var/www/web
COPY --from=build-env /app/output/wwwroot .
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80 443
答案 0 :(得分:0)
用我自己的答案回到这个问题。
尝试在服务器(在本例中为容器)上检索环境变量的值将不起作用,因为正在下载代码并在客户端上运行。
因此在服务器端设置的环境变量不会出现在客户端。
解决方案是改用 appsettings。
答案 1 :(得分:0)
事实上,即使在客户端执行,您也可以指定环境变量。
多个选项: