基于net7.0-windows构建Docker镜像遇System.Drawing.Common问题求助
问题:Docker构建含System.Drawing.Common的.NET项目报错,是否需要修改Dockerfile?
背景
我之前在Stack Overflow上提问过控制台应用中添加System.Drawing.Common的相关问题,现在在Visual Studio Code中构建Docker镜像时出现报错:
我希望能在Docker中运行该项目,已按照建议修改了项目的.csproj文件,代码如下:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net7.0-windows</TargetFramework> <ImplicitUsings>enable</ImplicitUsings> <UseWPF>True</UseWPF> <Nullable>enable</Nullable> <EnableWindowsTargeting>true</EnableWindowsTargeting> <!-- 添加此行 --> </PropertyGroup> <ItemGroup> <PackageReference Include="DSharpPlus" Version="5.0.0-nightly-01492" /> <PackageReference Include="DSharpPlus.CommandsNext" Version="5.0.0-nightly-01492" /> <PackageReference Include="DSharpPlus.Interactivity" Version="5.0.0-nightly-01492" /> <PackageReference Include="DSharpPlus.SlashCommands" Version="5.0.0-nightly-01492" /> <PackageReference Include="LibGit2Sharp" Version="0.26.2" /> <PackageReference Include="RestSharp" Version="109.0.1" /> <PackageReference Include="System.Drawing.Common" Version="7.0.0" /> <PackageReference Include="System.Threading.Timer" Version="4.3.0" /> <PackageReference Include="TwitchLib.Api" Version="3.9.0-preview-f7f2908" /> </ItemGroup> </Project>
但尚未修改Dockerfile,当前Dockerfile代码如下:
FROM mcr.microsoft.com/dotnet/runtime:7.0 AS base WORKDIR /app # 创建非root用户并赋予/app目录权限 RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app USER appuser FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build WORKDIR /src COPY ["DockerConsole.csproj", "./"] RUN dotnet restore "DockerConsole.csproj" COPY . . WORKDIR "/src/." RUN dotnet build "DockerConsole.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "DockerConsole.csproj" -c Release -o /app/publish /p:UseAppHost=false FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "DockerConsole.dll"]
请问是否需要对Dockerfile进行修改?
内容的提问来源于Stack Exchange,提问作者Cost
相关产品推荐
相关产品推荐

