Beatles1692
Beatles1692

Reputation: 5320

asp.net core docker image cannot find the installed sdk

I have created an Asp.net core project using :

dotnet new webapi

and I have added the following Dockerfile to my project:

# https://hub.docker.com/_/microsoft-dotnet-core
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /app

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

# copy everything else and build app
COPY . ./
RUN dotnet publish -c release -o out

# final stage/image
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS runtime
WORKDIR /app
EXPOSE 80
COPY --from=build /app/out ./
ENTRYPOINT ["dotnet", "myaspnetapp.dll"]

I can build the image but when I run it I am getting the following error :

  It was not possible to find any installed .NET Core SDKs
  Did you mean to run .NET Core SDK commands? Install a .NET Core SDK from:
      https://aka.ms/dotnet-download

Would you please tell me what I am missing here .

Upvotes: 0

Views: 1662

Answers (1)

Ziaullah Khan
Ziaullah Khan

Reputation: 2246

My best guess is that you hand coded this Dockerfile. I have had terrible luck with hand-written Dockerfile myself.

Add a docker file using Visual Studio.

  1. Right Click solution.
  2. Click Add
  3. Click Docker Support.

You should see below Dockerfile.

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["myaspnetapp.csproj", ""]
RUN dotnet restore "./myaspnetapp.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "myaspnetapp.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "myaspnetapp.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "myaspnetapp.dll"]

Hopefully, that'll solve it. I'll add more to the answer when I find out about it.

Upvotes: 1

Related Questions