0

在本文中,我找到了一种加速 docker build 命令的方法

https://www.softwaredeveloper.blog/optimize-building-net-core-docker-image

此命令缓存 nuget 依赖项

RUN dotnet publish -c Release -o out

我只是无法理解输出的含义,它应该是一条路径,但运行这样的命令失败,因为

COPY --from=publish out .

不起作用。如何在我的 docker 文件中使用它?

4

1 回答 1

2

这确实意味着它将构建的项目发布到out目录。但它与当前工作目录相关,这可能是导致您的问题的原因。

如果你拿这个 Dockerfile,那么我们首先创建一个/app目录。所以当我们发布到时out,完整路径是/app/out.

因此,当我们构建运行时映像时,我们可以从构建映像中复制/app/out并将其放在其他位置。这里我已经把它放进去了/app

FROM mcr.microsoft.com/dotnet/sdk:5.0 as build
WORKDIR /app
RUN dotnet new webapp
RUN dotnet restore
RUN dotnet publish -c Release -o out

FROM mcr.microsoft.com/dotnet/aspnet:5.0 as runtime
WORKDIR /app
COPY --from=build /app/out .
ENTRYPOINT ["dotnet", "/app/app.dll"]
于 2021-07-10T20:21:42.613 回答