Blazor WebAssembly在Docker中运行时无法读取环境变量或查找文件

时间:2020-07-07 22:04:01

标签: docker mono blazor blazor-webassembly

我有一个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

2 个答案:

答案 0 :(得分:0)

用我自己的答案回到这个问题。

尝试在服务器(在本例中为容器)上检索环境变量的值将不起作用,因为正在下载代码并在客户端上运行。

因此在服务器端设置的环境变量不会出现在客户端。

解决方案是改用 appsettings。

答案 1 :(得分:0)

事实上,即使在客户端执行,您也可以指定环境变量。

多个选项: