【发布时间】:2023-03-17 04:08:02
【问题描述】:
我有一个包含 2 个项目的 .NET Core 项目:
SLN:
- Web-API
- Infrastructure
我正在使用这个 dockerfile 使用 docker 构建它
FROM microsoft/aspnetcore-build:2.0 AS build-env
WORKDIR /app
COPY . ./
RUN dotnet restore
COPY . ./
RUN dotnet publish -c Release -o out
# Build runtime image
FROM microsoft/aspnetcore:2.0
WORKDIR /app
COPY --from=build-env /app/ .
ENTRYPOINT ["dotnet", "/app/Lab/out/API.dll"]
但现在我已经在我的解决方案中创建了一个 Web 应用程序
SLN:
- Web-API
- Web-App
- Infrastructure
突然之间,docker 不再构建了。怎么会? 如何基于相同的解决方案创建两个 docker 容器,一个用于 Web-API,一个用于 Web-app?
来自 Docker 的错误消息:
无法从程序集 /usr/share/dotnet/sdk/NuGetFallbackFolder/microsoft.aspnetcore.mvc.razor.viewcompilation/2.0.3/build/netstandard2.0/Microsoft.AspNetCore 加载“GetDotNetHost”任务。 Mvc.Razor.ViewCompilation.Tasks.dll。已加载同名程序集 确认声明正确,程序集及其所有依赖项均可用,并且任务包含实现 Microsoft.Build.Framework.ITask 的公共类。 [/app/Lab/API.csproj]
【问题讨论】:
-
你是如何构建的?看来这不是 docker 错误
-
我使用 Docker Build 和上面显示的 Dockerfile 进行构建。如果我删除 Web-API 项目或删除 Web-App 项目,则构建工作正常,但是当我将它们都包含在解决方案中时,构建失败。
-
如果您在 VS 2017 中使用 docker-compose 文件,请在解决方案目录中打开命令行并尝试 docker-compose down。还可以尝试清理解决方案并重建。根据您的描述,在我看来,您使用的是 VS2017 内置的 docker 支持,它可能很不稳定。尤其是 docker 问问题,VS 不会让你回答。
-
对不起,这是来自您的 IDE 的东西,错误消息不是来自 docker
-
我猜,这是来自运行命令
RUN dotnet publish -c Release -o out,只是为了找到问题,你可以评论这一行再试一次