首页 > 解决方案 > 运行 dotnet publish -c Release -o out ERROR 时,ASP.NET Core 项目中的 Dockerfile 失败

问题描述

当我想构建我的项目时,我得到一个错误。

我刚刚安装了docker,DockerFile是标准的,dockerignore是标准的。

我的机器在 Windows 10 x64 上运行。

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /app

# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore

# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out

# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "ToDoApp.dll"]

错误:

=> [stage-1 2/3] WORKDIR /app                                                                                     2.0s
 => [build-env 2/6] WORKDIR /app                                                                                   1.6s
 => [build-env 3/6] COPY *.csproj ./                                                                               0.1s
 => [build-env 4/6] RUN dotnet restore                                                                            62.9s
 => [build-env 5/6] COPY . ./                                                                                      0.1s
 => ERROR [build-env 6/6] RUN dotnet publish -c Release -o out                                                     1.3s
------
 > [build-env 6/6] RUN dotnet publish -c Release -o out:
#13 0.479 Microsoft (R) Build Engine version 16.7.1+52cd83677 for .NET
#13 0.479 Copyright (C) Microsoft Corporation. All rights reserved.
#13 0.479
#13 0.839   Determining projects to restore...
#13 1.076   All projects are up-to-date for restore.
#13 1.267 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: The "ResolvePackageAssets" task failed unexpectedly. [/app/ToDoApp.csproj]
#13 1.267 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: NuGet.Packaging.Core.PackagingException: Unable to find fallback package folder 'C:\Microsoft\Xamarin\NuGet\'. [/app/ToDoApp.csproj]
#13 1.267 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018:    at NuGet.Packaging.FallbackPackagePathResolver..ctor(String userPackageFolder, IEnumerable`1 fallbackPackageFolders) [/app/ToDoApp.csproj]
#13 1.267 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018:    at Microsoft.NET.Build.Tasks.NuGetPackageResolver.CreateResolver(IEnumerable`1 packageFolders) [/app/ToDoApp.csproj]
#13 1.267 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018:    at Microsoft.NET.Build.Tasks.NuGetPackageResolver.CreateResolver(LockFile lockFile) [/app/ToDoApp.csproj]
#13 1.267 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018:    at Microsoft.NET.Build.Tasks.ResolvePackageAssets.CacheWriter..ctor(ResolvePackageAssets task) [/app/ToDoApp.csproj]
#13 1.267 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018:    at Microsoft.NET.Build.Tasks.ResolvePackageAssets.CacheReader.CreateReaderFromDisk(ResolvePackageAssets task, Byte[] settingsHash) [/app/ToDoApp.csproj]
#13 1.267 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018:    at Microsoft.NET.Build.Tasks.ResolvePackageAssets.CacheReader..ctor(ResolvePackageAssets task) [/app/ToDoApp.csproj]
#13 1.267 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018:    at Microsoft.NET.Build.Tasks.ResolvePackageAssets.ReadItemGroups() [/app/ToDoApp.csproj]
#13 1.267 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018:    at Microsoft.NET.Build.Tasks.ResolvePackageAssets.ExecuteCore() [/app/ToDoApp.csproj]
#13 1.267 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018:    at Microsoft.NET.Build.Tasks.TaskBase.Execute() [/app/ToDoApp.csproj]
#13 1.267 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() [/app/ToDoApp.csproj]
#13 1.267 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask) [/app/ToDoApp.csproj]
------
executor failed running [/bin/sh -c dotnet publish -c Release -o out]: exit code: 1
<Project Sdk="Microsoft.NET.Sdk.Web">
    
    <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    </PropertyGroup>

    <ItemGroup>
    <PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="8.1.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.1">
        <PrivateAssets>all</PrivateAssets>
        <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.1">
        <PrivateAssets>all</PrivateAssets>
        <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    </ItemGroup>


</Project>

标签: c#asp.netdockerasp.net-corewindows-10

解决方案


推荐阅读