早上好,
我无法在 Docker 上启动我的(已发布的)Blazor WebAssembly 映像。看了几个和我情况一样的教程,还是无法启动镜像。
目标是将我的 Blazor WASM 应用程序放置在 Synology NAS 中的 docker 上。 我不太了解 docker 和 dockerfiles
这是必要文件的位置:
\\PLASSYS-SERVEUR\Temporaire\Matis\Blazor\PlassysTools\PlassysTools.csproj
\\PLASSYS-SERVEUR\Temporaire\Matis\Blazor\PlassysTools\Dockerfile
\\PLASSYS-SERVEUR\Temporaire\Matis\Blazor\PlassysTools\bin\Release\net7.0\PlassysTools.dll
这是我的错误和文件:
Dockerfile:
ROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base
WORKDIR /app
EXPOSE 9321
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
WORKDIR /src
COPY ["PlassysTools.csproj", "./"]
RUN dotnet restore
COPY . .
RUN dotnet build -c Release
FROM build AS publish
RUN dotnet publish -c Release -o /app/publish
COPY --from=build /src/bin/Release/net7.0/wwwroot /app/wwwroot
RUN dotnet --list-sdks
RUN dotnet --version
FROM base AS final
WORKDIR /app
ENTRYPOINT ["dotnet", "PlassysTools.dll"]
PlassysTools.csproj:
<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="7.0.10" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="7.0.10" PrivateAssets="all" />
<PackageReference Include="CsvHelper" Version="30.0.1" />
</ItemGroup>
<ItemGroup>
<None Update="wwwroot\asset\Gas.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
在将其重建为映像之前,我多次更改了我的docker文件,我认为错误可能来自
COPY. .
我在计算机上创建映像,然后将其发送到 NAS
PS C:\Users\PLASSYS BESTEK\Desktop\Matis\Blazor\PlassysTools> dotnet publish -c Release -o ./publish
Version MSBuild 17.7.1+971bf70db pour .NET
Identification des projets à restaurer...
Tous les projets sont à jour pour la restauration.
C:\Program Files\dotnet\sdk\7.0.400\Current\SolutionFile\ImportAfter\Microsoft.NET.Sdk.Solution.targets(36,5): warning
NETSDK1194: l’option « --output » n’est pas prise en charge lors de la génération d’une solution. Si vous spécifiez un
chemin de sortie au niveau de la solution, tous les projets copient les sorties dans le même répertoire, ce qui peut en
traîner des builds incohérentes. [C:\Users\PLASSYS BESTEK\Desktop\Matis\Blazor\PlassysTools\PlassysTools.sln]
PlassysTools -> C:\Users\PLASSYS BESTEK\Desktop\Matis\Blazor\PlassysTools\bin\Release\net7.0\PlassysTools.dll
PlassysTools (Blazor output) -> C:\Users\PLASSYS BESTEK\Desktop\Matis\Blazor\PlassysTools\bin\Release\net7.0\wwwroot
L'optimisation de la taille des assemblys peut modifier le comportement de l'application. Assurez-vous de tester aprè
s la publication. Voir : https://aka.ms/dotnet-illink
Compressing Blazor WebAssembly publish artifacts. This may take a while...
PlassysTools -> C:\Users\PLASSYS BESTEK\Desktop\Matis\Blazor\PlassysTools\publish\
PS C:\Users\PLASSYS BESTEK\Desktop\Matis\Blazor\PlassysTools> docker build -t plassystools:latest .
[+] Building 0.1s (7/7) FINISHED docker:default
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 957B 0.0s
=> [internal] load metadata for mcr.microsoft.com/dotnet/aspnet:7.0 0.0s
=> [base 1/2] FROM mcr.microsoft.com/dotnet/aspnet:7.0 0.0s
=> CACHED [base 2/2] WORKDIR /app 0.0s
=> CACHED [final 1/1] WORKDIR /app 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:c544492c75f93ca7d30b8667d9e1829138190c61979e92fa034b110900697622 0.0s
=> => naming to docker.io/library/plassystools:latest 0.0s
What's Next?
View a summary of image vulnerabilities and recommendations → docker scout quickview
PS C:\Users\PLASSYS BESTEK\Desktop\Matis\Blazor\PlassysTools> docker save -o plassystools-image.tar plassystools:latest
感谢那些花时间帮助我的人<3
您可能无法使用 Blazor WASM 启动 Docker 映像,可能有以下几种原因:
如果您在启动 Docker 映像时仍然遇到问题,可以尝试以下故障排除步骤:
docker logs <image-name>
docker run -it --rm <image-name>
以下是一些用于排除使用 Blazor WASM 启动 Docker 映像时的常见错误的其他提示:
RUN
指令来安装依赖项来完成此操作。docker run
命令中更改端口映射。ENV
指令或将环境变量传递给 docker run
命令来完成此操作。如果您在使用 Blazor WASM 启动 Docker 映像时仍然遇到问题,请提供有关您遇到的错误的更多信息,我将尽力帮助您解决问题。