Zuc*_*ini 5 mono docker blazor blazor-webassembly
我有一个 Blazor WebAssembly 项目,我已经对其进行了 dockerized,并且我正在尝试在启动时读取容器中设置的环境变量。如果我执行以下操作,我就可以在容器中运行 shell 并回显变量。
docker run -e DEBUG=false --name blazortest dockerizedclientsideblazor
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试使用此命令读取应用程序中的环境变量。
Environment.GetEnvironmentVariable("DEBUG")
Run Code Online (Sandbox Code Playgroud)
它返回 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
Run Code Online (Sandbox Code Playgroud)
回到这个问题,用我自己的答案。
尝试检索服务器(在本例中为容器)上的环境变量的值将不起作用,因为代码正在下载并在客户端上运行。
所以服务器端设置的环境变量不会出现在客户端。
解决方案是使用应用程序设置。
| 归档时间: |
|
| 查看次数: |
2361 次 |
| 最近记录: |