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)
Okay with that knowledge I’m able to complete this build now cleanly even without
--skip-manifest-update
Update the asset definitions as described https://github.com/dotnet/aspnetcore/issues/34577
https://github.com/timheuer/PictureFixer/blob/main/PictureFixer/Client/PictureFixer.Client.csproj#L11-L13
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.