适用于Windows的Docker桌面+ ASP.NET核心错误

时间:2019-02-28 19:20:39

标签: visual-studio docker asp.net-core docker-windows docker-desktop

我最近决定尝试给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支持,无需更改配置。我已经尝试过清理,重建,更新所有nuget等。如果我在IIS中运行该项目,则表示运行良好。

有人有什么想法吗?

编辑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 :(得分:0)

您可能有一个导致问题的剩余容器。尝试使用以下命令清理环境:

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替换为图像的名称,或者先创建一个具有该值的变量即可。