具有本机依赖关系的 Blazor .NET 6 无法构建为 Docker 映像

Posted

技术标签:

【中文标题】具有本机依赖关系的 Blazor .NET 6 无法构建为 Docker 映像【英文标题】:Blazor .NET 6 with Native Dependency cannot build as a Docker image 【发布时间】:2021-11-25 07:12:57 【问题描述】:

我想向我的 Docker 托管的 Blazor Web Assembly 应用程序添加本机依赖项,​​但无法构建 Docker 映像,即使应用程序在 Docker 之外构建和运行得非常好。

以下是复制问题的步骤。

    在 Visual Studio 2022 中创建一个默认的 .NET 6 Blazor Web Assembly 应用程序

    为项目添加 Docker 支持

    通过将以下行添加到 来编辑项目文件以要求本机链接 -

    在 Dockerfile 中添加一行以安装 WASM 工具 - 运行 dotnet 工作负载安装 wasm-tools

    尝试构建 Docker 镜像 - '错误:命令“emcc --version”以代码 1 退出。'

没有提供其他错误详细信息。

【问题讨论】:

【参考方案1】:

用于编译的Emscripten需要在SDK镜像中没有安装的python。

您可以通过添加该行在构建映像中自己安装它

RUN apt-get update && apt-get install -y python3

在您的 Dockerfile 中,在您进行 dotnet 构建或发布之前的某个位置。

【讨论】:

太棒了。这解决了问题。谢谢! @mikejos 太好了!如果您能接受答案,那就太好了,这样有相同问题的其他用户可以看到答案有效。

以上是关于具有本机依赖关系的 Blazor .NET 6 无法构建为 Docker 映像的主要内容,如果未能解决你的问题,请参考以下文章

为啥无状态 bean 被视为伪作用域并且不能具有循环依赖关系?

.Net 6 - 用于 blazor 的 UseCors

Blazor .Net 6.0 热重载

我的 ASP.NET Core MVVM Blazor 应用程序的依赖注入无法正常工作

CSS ::Deep Pseudo-Element 在 .NET 5 和 6 的 Blazor 中不起作用

Blazor 的依赖注入问题