【问题标题】:ASP.NET Core build docker image having shared librariesASP.NET Core 构建具有共享库的 docker 映像
【发布时间】:2020-12-14 14:55:32
【问题描述】:

我在微服务环境中工作,这些微服务之间存在共享库。

这些库存储在磁盘上的不同位置,即“共享”位置,并被这些微服务直接引用。

在此类微服务的 .csproj 中,您会看到类似这样的内容。

<ItemGroup>
   <ProjectReference Include="..\..\..\Shared1.csproj" />
<ItemGropu>

现在在每个微服务中我都有一个 dockerfile

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY . .
COPY ../../../Users/boris/Desktop/shared/Shared/Shared/Shared.csproj .
RUN dotnet restore "WebUi.csproj"

WORKDIR /src/.
RUN dotnet build "WebUi.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "WebUi.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
RUN ls
ENTRYPOINT ["dotnet", "WebUi.dll"]

构建图像时

docker build -f dockerfile .

我来了

错误 [build 4/7] COPY ..\..\..\Users\boris\Desktop\shared\Shared\Shared\Shared.csproj .

[构建 4/7] 复制 ......\Users\boris\Desktop\shared\Shared\Shared\Shared.csproj .: 无法使用前端 dockerfile.v0 解决:无法构建 LLB: 无法计算缓存键: "/..\..\..\Users\boris\Desktop\shared\Shared\Shared\Shared.csproj" 未找到:未找到 PS C:.demos\hangfire-dashboard\WebUi> docker 构建 -f .\dockerfile -t web 。 [+] 构建 0.2s (10/18)

我认为这是因为构建上下文,但不确定。

关于如何解决此问题的任何想法?

【问题讨论】:

  • 看起来您的 dockerfile 无法解析路径 ..\..\..\Users\boris\Desktop\shared\Shared\Shared\Shared.csproj。您可以运行单阶段构建进行测试,然后将所有内容组合成多阶段构建。

标签: docker dockerfile


【解决方案1】:

好的,首先将dockerfile 重命名为Dockerfile。接下来首先是正确的路径吗?我假设您的 csproj 与您的 Dockerfile 存在于同一文件夹中,并且在您的 csproj 中您使用 &lt;ProjectReference Include="..\..\..\Shared1.csproj" /&gt; 而在 docker 文件中您使用 ../../../Users/boris/Desktop/shared/Shared/Shared/Shared.csproj 所以如果 csproj 和 Dockerfile 存在于同一目录中路径根本不正确。

【讨论】:

  • 为什么 dockerfile 需要重命名为 Dockerfile?
  • @RajdeepDebnath 健全性检查有一个问题,对我来说似乎已解决。只是确保它不是一些时髦的行为。但问题的根源似乎是您提供的不正确的相对路径。尝试在 csproj 上方的文件夹中添加 .txt 并复制它
  • dockerfile 无需重命名为 Dockerfile
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多