Docker Desktop для Windows + ошибка ядра ASP.NET

Недавно я решил попробовать докер, и я сталкиваюсь с этой ошибкой уже 2 дня. Что бы я ни делал, я не могу от него избавиться.

Для приложения .NET Core 2.2:

2>C:\Users\Russell\.nuget\packages\microsoft.visualstudio.azure.containers.tools.targets\1.4.4\build\Container.targets(256,5): error : An item with the same key has already been added.

Это недавно добавленная поддержка Docker для проекта, без изменений конфигурации. Я пробовал чистить, перестраивать, обновлять все nugets и т. д. Если я запускаю проект в IIS Express, он работает нормально.

У кого-нибудь есть мысли?

Редактировать 1: файл Docker:

WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM microsoft/dotnet:2.2-sdk AS build
WORKDIR /src
COPY ["SearchAPICore_Search/SearchAPICore_Search.csproj", "SearchAPICore_Search/"]
COPY ["SearchAPICore_Models/SearchAPICore_Models.csproj", "SearchAPICore_Models/"]
RUN dotnet restore "SearchAPICore_Search/SearchAPICore_Search.csproj"
COPY . .
WORKDIR "/src/SearchAPICore_Search"
RUN dotnet build "SearchAPICore_Search.csproj" -c Release -o /app

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

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


person mdrussell0779    schedule 28.02.2019    source источник
comment
Опубликуйте свой файл докеры или шаги, как вы пришли к этой ошибке   -  person Gregory Suvalian    schedule 28.02.2019
comment
файл добавлен — все, что я сделал, это щелкнул правой кнопкой мыши по проекту -> добавить -> поддержка докеров › linux (Windows делает то же самое), затем попытался запустить проект в докере с помощью кнопки запуска в верхней части VS на панели инструментов.   -  person mdrussell0779    schedule 28.02.2019
comment
Это становится средством устранения неполадок Visual Studio, а не докером. Я действительно предлагаю не использовать VS для всего, что связано с докером. Создайте свой файл докеров вручную, чтобы понять, что эти вещи делают.   -  person Gregory Suvalian    schedule 28.02.2019
comment
Вы нашли решение этой проблемы, поскольку я столкнулся с той же проблемой.   -  person Peter M    schedule 09.04.2019
comment
К сожалению нет. Я вернусь на следующей неделе и свяжусь с докером.   -  person mdrussell0779    schedule 11.04.2019


Ответы (1)


Вероятно, у вас остался лишний контейнер, который вызывает проблему. Попробуйте очистить среду с помощью следующих команд:

Линукс:

# Clean exited containers
docker ps --filter status=exited -q | xargs docker rm
# Clean dangling images
docker images --filter dangling=true -q | xargs docker rmi
# Clean old tagged images 
docker images --filter reference="$ContainerTag" -q | xargs docker rmi

Windows PowerShell:

# Clean exited containers
docker ps --filter status=exited -q | %{ docker rm }
# Clean dangling images
docker ps --filter dangling=true -q | %{ docker rmi }
# Clean old tagged images 
docker images --filter reference="$ContainerTag" -q | %{ docker rmi }

Последнее может и не понадобиться, но не помешает. Просто убедитесь, что либо заменили $ContainerTag на имя изображения, либо заранее создали переменную с этим значением.

person Jonatan Bernal    schedule 17.04.2019
comment
Последнее может и не понадобиться, но оно не поможет. — Я полагаю, вы имеете в виду, что не повредит? - person Wai Ha Lee; 17.04.2019
comment
Да, извините за это. - person Jonatan Bernal; 18.04.2019
comment
Нет проблем - просто хотел убедиться, что мое редактирование было громоздким. - person Wai Ha Lee; 18.04.2019