Docker Desktop для Windows + ошибка ядра ASP.NET - PullRequest
0 голосов
/ 28 февраля 2019

Я недавно решил попробовать Docker, и я сталкиваюсь с этой ошибкой в ​​течение 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 для проекта, без изменений конфигурации.Я попытался очистить, перестроить, обновить все нюансы и т. Д. Если я запускаю проект в 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"]```

1 Ответ

0 голосов
/ 17 апреля 2019

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

Linux:

# 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 на имя изображения или создайте переменную с этим значением перед рукой.

...