dotnet core: Docker errors NU3037 and NU3028 after upgrade to sdk:5.0+
Date: 2021-05-13 | dotnet | troubleshoot | docker |
Problem
NuGet ran into certificate problems in January 2021 and April 2021 which were purportedly resolved by changing the target dotnet/sdk
Docker image to something over 5.0 (i.e. dotnet/sdk:5.0.203
would work)(source: NuGet announcement).
However upon updating my target image in my Dockerfile I continued to hit these NU3037 and NU3028 errors with full messages like:
error NU3028: Package 'Microsoft.Extensions.Options 5.0.0' from source 'https://api.nuget.org/v3/index.json': The author primary signature's timestamp found a chain building issue: UntrustedRoot: self signed certificate in certificate chain
and
error NU3037: Package 'Microsoft.Extensions.Options 5.0.0' from source 'https://api.nuget.org/v3/index.json': The author primary signature validity period has expired.
Solution
I was able to resolve this by removing the --no-restore
flag from my Dockerfile such that it looks like this:
FROM mcr.microsoft.com/dotnet/sdk:5.0.203-alpine3.13 AS build
EXPOSE 8080
WORKDIR /source
COPY ./*.csproj ./
RUN dotnet restore
COPY . .
RUN dotnet publish -c release -o /app
# --no-restore removed in line above
FROM mcr.microsoft.com/dotnet/aspnet:5.0
WORKDIR /app
COPY --from=build /app .
ENTRYPOINT ["dotnet", "LineTimesServer.dll"]
I'm not totally sure why this works but my guess is that --no-restore kept the old packages in the app to be released vs refreshing them with dotnet restore
. This meant that at publish time, we still had the offending packages.
For science, I tried it again with --no-restore
and that failed.
Removing it allowed it to work again.
So not sure what that says.
Anyway, hope this helped.
-HAMY.OUT
Want more like this?
The best / easiest way to support my work is by subscribing for future updates and sharing with your network.