繁体   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