I recently attempted to manually add a docker file to a asp.net dotnetcore app but hit an error where the build failed with an unhelpful error message because I handn't supplied a docker ignore file. This was non-obvious hence prompting the following requests:
- If the dotnet command when encountering this in a container build could show a more helpful error message that would be awesome
- A
Dotnet new dockerfile command that would add a minimal docker file and a .dockeringnore populated to prevent this issue would be even better to support commandline users like myself.
Result:
PS C:\src\github.com\clarkezone\featherservicetest\src\BasicService> docker build -t cool .
[+] Building 1.6s (18/20)
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 764B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for mcr.microsoft.com/dotnet/aspnet:5.0 0.2s
=> [internal] load metadata for mcr.microsoft.com/dotnet/sdk:5.0 0.2s
=> [stage-1 1/3] FROM mcr.microsoft.com/dotnet/aspnet:5.0@sha256:891da1ae4f8886a05ce3ea23cb5d3099aebcf05e67cc457ceee044442f8f4bce 0.0s
=> [build 1/12] FROM mcr.microsoft.com/dotnet/sdk:5.0@sha256:84cf7fdb35c9d2498db2292528af42bfdc4a34add689086abaed8dac4623d5d5 0.0s
=> [internal] load build context 0.2s
=> => transferring context: 3.37MB 0.2s
=> CACHED [build 2/12] WORKDIR /source 0.0s
=> CACHED [build 3/12] COPY .sln . 0.0s
=> CACHED [build 4/12] COPY BasicService/.csproj ./BasicService/ 0.0s
=> CACHED [build 5/12] COPY GreeterLogic/.csproj ./GreeterLogic/ 0.0s
=> CACHED [build 6/12] COPY GreeterLogic.Tests/.csproj ./GreeterLogic.Tests/ 0.0s
=> CACHED [build 7/12] RUN dotnet restore 0.0s
=> [build 8/12] COPY BasicService/. ./BasicService/ 0.0s
=> [build 9/12] COPY GreeterLogic/. ./GreeterLogic/ 0.0s
=> [build 10/12] COPY GreeterLogic.Tests/. ./GreeterLogic.Tests/ 0.0s
=> [build 11/12] WORKDIR /source/BasicService 0.0s
=> ERROR [build 12/12] RUN dotnet publish -c release -o /app --no-restore 0.9s
[build 12/12] RUN dotnet publish -c release -o /app --no-restore:
#19 0.432 Microsoft (R) Build Engine version 16.9.0+57a23d249 for .NET
#19 0.432 Copyright (C) Microsoft Corporation. All rights reserved.
#19 0.432
#19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: The "ResolvePackageAssets" task failed unexpectedly. [/source/BasicService/BasicService.csproj]
#19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: NuGet.Packaging.Core.PackagingException: Unable to find fallback package folder 'C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages'. [/source/BasicService/BasicService.csproj]
#19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at NuGet.Packaging.FallbackPackagePathResolver..ctor(String userPackageFolder, IEnumerable1 fallbackPackageFolders) [/source/BasicService/BasicService.csproj] #19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.NuGetPackageResolver..ctor(String userPackageFolder, IEnumerable1 fallbackPackageFolders) [/source/BasicService/BasicService.csproj]
#19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.NuGetPackageResolver.CreateResolver(IEnumerable`1 packageFolders) [/source/BasicService/BasicService.csproj]
#19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.NuGetPackageResolver.CreateResolver(LockFile lockFile) [/source/BasicService/BasicService.csproj]
#19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.ResolvePackageAssets.CacheWriter..ctor(ResolvePackageAssets task) [/source/BasicService/BasicService.csproj]
#19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.ResolvePackageAssets.CacheReader.CreateReaderFromDisk(ResolvePackageAssets task, Byte[] settingsHash) [/source/BasicService/BasicService.csproj]
#19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.ResolvePackageAssets.CacheReader..ctor(ResolvePackageAssets task) [/source/BasicService/BasicService.csproj]
#19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.ResolvePackageAssets.ReadItemGroups() [/source/BasicService/BasicService.csproj]
#19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.ResolvePackageAssets.ExecuteCore() [/source/BasicService/BasicService.csproj]
#19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.TaskBase.Execute() [/source/BasicService/BasicService.csproj]
#19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() [/source/BasicService/BasicService.csproj]
#19 0.837 /usr/share/dotnet/sdk/5.0.202/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) [/source/BasicService/BasicService.csproj]
I recently attempted to manually add a docker file to a asp.net dotnetcore app but hit an error where the build failed with an unhelpful error message because I handn't supplied a docker ignore file. This was non-obvious hence prompting the following requests:
Dotnet new dockerfilecommand that would add a minimal docker file and a .dockeringnore populated to prevent this issue would be even better to support commandline users like myself.Result:
PS C:\src\github.com\clarkezone\featherservicetest\src\BasicService> docker build -t cool .
[+] Building 1.6s (18/20)
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 764B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for mcr.microsoft.com/dotnet/aspnet:5.0 0.2s
=> [internal] load metadata for mcr.microsoft.com/dotnet/sdk:5.0 0.2s
=> [stage-1 1/3] FROM mcr.microsoft.com/dotnet/aspnet:5.0@sha256:891da1ae4f8886a05ce3ea23cb5d3099aebcf05e67cc457ceee044442f8f4bce 0.0s
=> [build 1/12] FROM mcr.microsoft.com/dotnet/sdk:5.0@sha256:84cf7fdb35c9d2498db2292528af42bfdc4a34add689086abaed8dac4623d5d5 0.0s
=> [internal] load build context 0.2s
=> => transferring context: 3.37MB 0.2s
=> CACHED [build 2/12] WORKDIR /source 0.0s
=> CACHED [build 3/12] COPY .sln . 0.0s
=> CACHED [build 4/12] COPY BasicService/.csproj ./BasicService/ 0.0s
=> CACHED [build 5/12] COPY GreeterLogic/.csproj ./GreeterLogic/ 0.0s
=> CACHED [build 6/12] COPY GreeterLogic.Tests/.csproj ./GreeterLogic.Tests/ 0.0s
=> CACHED [build 7/12] RUN dotnet restore 0.0s
=> [build 8/12] COPY BasicService/. ./BasicService/ 0.0s
=> [build 9/12] COPY GreeterLogic/. ./GreeterLogic/ 0.0s
=> [build 10/12] COPY GreeterLogic.Tests/. ./GreeterLogic.Tests/ 0.0s
=> [build 11/12] WORKDIR /source/BasicService 0.0s
=> ERROR [build 12/12] RUN dotnet publish -c release -o /app --no-restore 0.9s
[build 12/12] RUN dotnet publish -c release -o /app --no-restore:
#19 0.432 Microsoft (R) Build Engine version 16.9.0+57a23d249 for .NET
#19 0.432 Copyright (C) Microsoft Corporation. All rights reserved.
#19 0.432
#19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: The "ResolvePackageAssets" task failed unexpectedly. [/source/BasicService/BasicService.csproj]
#19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: NuGet.Packaging.Core.PackagingException: Unable to find fallback package folder 'C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages'. [/source/BasicService/BasicService.csproj]
#19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at NuGet.Packaging.FallbackPackagePathResolver..ctor(String userPackageFolder, IEnumerable1 fallbackPackageFolders) [/source/BasicService/BasicService.csproj] #19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.NuGetPackageResolver..ctor(String userPackageFolder, IEnumerable1 fallbackPackageFolders) [/source/BasicService/BasicService.csproj]
#19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.NuGetPackageResolver.CreateResolver(IEnumerable`1 packageFolders) [/source/BasicService/BasicService.csproj]
#19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.NuGetPackageResolver.CreateResolver(LockFile lockFile) [/source/BasicService/BasicService.csproj]
#19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.ResolvePackageAssets.CacheWriter..ctor(ResolvePackageAssets task) [/source/BasicService/BasicService.csproj]
#19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.ResolvePackageAssets.CacheReader.CreateReaderFromDisk(ResolvePackageAssets task, Byte[] settingsHash) [/source/BasicService/BasicService.csproj]
#19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.ResolvePackageAssets.CacheReader..ctor(ResolvePackageAssets task) [/source/BasicService/BasicService.csproj]
#19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.ResolvePackageAssets.ReadItemGroups() [/source/BasicService/BasicService.csproj]
#19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.ResolvePackageAssets.ExecuteCore() [/source/BasicService/BasicService.csproj]
#19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.TaskBase.Execute() [/source/BasicService/BasicService.csproj]
#19 0.837 /usr/share/dotnet/sdk/5.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() [/source/BasicService/BasicService.csproj]
#19 0.837 /usr/share/dotnet/sdk/5.0.202/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) [/source/BasicService/BasicService.csproj]