Не могу создать образ докера. Совместимая версия SDK для версии global.json: [2.2.106] из [/app/global.json] не найдена - PullRequest
0 голосов
/ 30 июня 2019

Это мой первый раз, когда я использую докер, поэтому я, вероятно, что-то делаю неправильно.Я пытаюсь докернизировать мой основной микросервис asp.net.Я следовал этому уроку: https://docs.docker.com/engine/examples/dotnetcore/. Там я нашел этот dockerfile:

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

# Copy csproj and restore as distinct layers
COPY FlightManagement.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:2.2
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "FlightManagement.dll"]

Когда я пытаюсь выполнить следующую команду:

docker build -t flightmanagement .

, я получаю следующий вывод:

Sending build context to Docker daemon  5.949MB
Step 1/10 : FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build-env
2.2: Pulling from dotnet/core/sdk
6f2f362378c5: Already exists 
494c27a8a6b8: Already exists 
7596bb83081b: Already exists 
372744b62d49: Already exists 
29ec75cd6459: Pull complete 
abb902ce071b: Pull complete 
eaac80d34a7a: Pull complete 
Digest: sha256:f0617d5f2241cc964d0ec4314f3920b843e9737c879d94fdf827ed749bf17cc2
Status: Downloaded newer image for mcr.microsoft.com/dotnet/core/sdk:2.2
 ---> 155911c343f3
Step 2/10 : WORKDIR /app
 ---> Running in 5733374f2db1
Removing intermediate container 5733374f2db1
 ---> c954daddd668
Step 3/10 : COPY *.csproj ./
 ---> fac826a55fbe
Step 4/10 : RUN dotnet restore
 ---> Running in b6261ef4d8d5
  Restore completed in 2 sec for /app/FlightManagement.csproj.
Removing intermediate container b6261ef4d8d5
 ---> 9500077ee638
Step 5/10 : COPY . ./
 ---> d03756b83149
Step 6/10 : RUN dotnet publish -c Release -o out
 ---> Running in c7a8138ebbbf
A compatible SDK version for global.json version: [2.2.106] from [/app/global.json] was not found
Did you mean to run dotnet SDK commands? Please install dotnet SDK from:
  https://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
The command '/bin/sh -c dotnet publish -c Release -o out' returned a non-zero code: 145

Я пробовал несколько учебных пособий по докеризации основного приложения asp.net, но, похоже, они все дают ту же ошибку.Я надеюсь, что кто-то может мне помочь.

Спасибо.

1 Ответ

0 голосов
/ 01 июля 2019

Для mcr.microsoft.com/dotnet/core/sdk:2.2 по умолчанию .net core sdk - 2.2.300.

Но вы создаете проект с указанием sdk 2.2.106 от global.json.

Измените ваш global.json, как показано ниже:

{
    "sdk": {
        "version": "2.2.300"
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...