gpt4 book ai didi

c# - 从具有多个项目的解决方案构建 docker 容器

转载 作者:行者123 更新时间:2023-12-02 19:32:15 27 4
gpt4 key购买 nike

我有一个包含 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.Mvc.Razor 加载“GetDotNetHost”任务.ViewCompilation.Tasks.dll。已加载同名程序集 确认声明正确、程序集及其所有依赖项均可用,并且任务包含实现 Microsoft.Build.Framework.ITask 的公共(public)类。 [/app/Lab/API.csproj]

最佳答案

所以这个问题现在终于解决了。事实证明,当 Razor View 可用时,在编译 .net core 2.0 项目时出现问题:

Razor view precompilation is currently unavailable when performing a self-contained deployment (SCD) in ASP.NET Core 2.0. The feature will be available for SCDs when 2.1 releases. For more information, see View compilation fails when cross-compiling for Linux on Windows.



我需要做的是添加 nuget 包:

Microsoft.AspNetCore.Mvc.Razor.ViewCompilation



在我的项目中使其工作。奇怪的是,它是在 Visual Studio for Mac 中构建的,而不是从命令提示符中构建的。

关于c# - 从具有多个项目的解决方案构建 docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50170752/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com