runtime: Blazor AOT compilation fails on Emscripten target when run in containers

Describe the bug

When trying to build a Blazor Wasm client project in a container, the AOT step fails on an emcc exit code. These same steps work fine in a CI pipeline (GitHub Actions)

To Reproduce

Repo: https://github.com/timheuer/PictureFixer/ (docker branch) Dockerfile: https://github.com/timheuer/PictureFixer/blob/docker/PictureFixer/Dockerfile

Ensure Docker Desktop installed run docker build . from within the PictureFixer/PictureFixer location

Exceptions (if any)

All steps succeed until the dotnet publish phase which emits:

 => ERROR [publish 1/1] RUN dotnet publish "PictureFixer.Server.csproj" -c Release -o /app/publish                36.4s
------
 > [publish 1/1] RUN dotnet publish "PictureFixer.Server.csproj" -c Release -o /app/publish:
dotnet/aspnetcore#20 0.297 Microsoft (R) Build Engine version 17.0.0-preview-21302-02+018bed83d for .NET
dotnet/aspnetcore#20 0.297 Copyright (C) Microsoft Corporation. All rights reserved.
dotnet/aspnetcore#20 0.297
dotnet/aspnetcore#20 0.604   Determining projects to restore...
dotnet/aspnetcore#20 1.096   All projects are up-to-date for restore.
dotnet/aspnetcore#20 1.147   You are using a preview version of .NET. See: https://aka.ms/dotnet-core-preview
dotnet/aspnetcore#20 1.295   You are using a preview version of .NET. See: https://aka.ms/dotnet-core-preview
dotnet/aspnetcore#20 1.437   PictureFixer.Shared -> /src/Shared/bin/Release/net6.0/PictureFixer.Shared.dll
dotnet/aspnetcore#20 2.994   PictureFixer.Client -> /src/Client/bin/Release/net6.0/PictureFixer.Client.dll
dotnet/aspnetcore#20 2.995   PictureFixer.Client (Blazor output) -> /src/Client/bin/Release/net6.0/wwwroot
dotnet/aspnetcore#20 5.240   PictureFixer.Server -> /src/Server/bin/Release/net6.0/PictureFixer.Server.dll
dotnet/aspnetcore#20 8.440   Optimizing assemblies for size, which may change the behavior of the app. Be sure to test after publishing. See: https://aka.ms/dotnet-illink
dotnet/aspnetcore#20 8.452   AOT'ing 56 assemblies
dotnet/aspnetcore#20 36.17 /usr/share/dotnet/packs/Microsoft.NET.Runtime.WebAssembly.Sdk/6.0.0-preview.5.21301.5/Sdk/WasmApp.targets(507,5): error MSB3073: The command "emcc --version" exited with code 1. [/src/Client/PictureFixer.Client.csproj]
------
executor failed running [/bin/sh -c dotnet publish "PictureFixer.Server.csproj" -c Release -o /app/publish]: exit code: 1

Further technical details

.NET SDK (reflecting any global.json):
 Version:   6.0.100-preview.5.21302.13
 Commit:    d6380bcae7

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.19043
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\6.0.100-preview.5.21302.13\

Host (useful for support):
  Version: 6.0.0-preview.5.21301.5
  Commit:  ec3e0b276b

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Reactions: 1
  • Comments: 26 (25 by maintainers)

Most upvoted comments

Okay with that knowledge I’m able to complete this build now cleanly even without --skip-manifest-update

@timheuer what was the output of RUN dotnet workload install microsoft-net-sdk-blazorwebassembly-aot --skip-manifest-update ?

All success, no errors…the detail log goes away from the output so I can’t copy it here, but no errors and everything was installing.