簡體   English   中英

從具有多個項目的解決方案構建 docker 容器

[英]Build docker container from solution with multiple projects

我有一個包含 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 的公共類。 [/app/Lab/API.csproj]

所以這個問題現在終於解決了。 事實證明,當有 Razor 視圖可用時,在編譯 .net core 2.0 項目時會出現問題:

在 ASP.NET Core 2.0 中執行獨立部署 (SCD) 時,Razor 視圖預編譯當前不可用。 當 2.1 版本發布時,該功能將可用於 SCD。 有關詳細信息,請參閱 Windows 上的 Linux 交叉編譯時查看編譯失敗。

我需要做的是添加 nuget 包:

Microsoft.AspNetCore.Mvc.Razor.ViewCompilation

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM