Docker-无法生成简单的dotnet webapi容器:复制失败:stat/var/lib/Docker/overlay2错误

Docker-无法生成简单的dotnet webapi容器:复制失败:stat/var/lib/Docker/overlay2错误,docker,.net-core,dockerfile,docker-build,Docker,.net Core,Dockerfile,Docker Build,我创建了一个简单的.NETCore3.0WebAPI。在项目目录中,我有一个Dockerfile,如下所示: FROM mcr.microsoft.com/dotnet/core/sdk:3.0 AS build-env WORKDIR /app # copy over csproj and restore nuget packages COPY DockerWebApiSandbox.csproj ./ RUN dotnet restore # copy everything else o

我创建了一个简单的.NETCore3.0WebAPI。在项目目录中,我有一个Dockerfile,如下所示:

FROM mcr.microsoft.com/dotnet/core/sdk:3.0 AS build-env
WORKDIR /app

# copy over csproj and restore nuget packages
COPY DockerWebApiSandbox.csproj ./
RUN dotnet restore

# copy everything else over into the same directory as the last copy step
# and run the publish step to build and gather output
COPY . ./
RUN dotnet publish -c Release -o output

FROM mcr.microsoft.com/dotnet/core/aspnet:3.0
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "DockerWebApiSandbox.dll"]
从我的项目的工作目录运行
docker build-t dockerwebapisandbox.
时,我在第9步(共10步)中看到一个失败(第三个复制命令):

复制失败:stat /var/lib/docker/overlay2/f6f3391827aef74f1dab5716635a9119ae250ae94a216bbc0bc7b47c4030d60a/merged/app/out: 没有这样的文件或目录

在搜索社区对这个错误的看法时,我发现了一个建议。建议中提到屏蔽到VM中,但该命令失败,因为
com.docker.driver.amd64 linux/
目录在预期的位置不存在。建议的screen命令如下所示:
$screen~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64 linux/tty

除了尝试上面链接中的建议外,我还尝试了卸载Docker和Docker Desktop,以及Docker Desktop中提供的“工厂重置”选项


FWIW,我在管理MacOS Mojave。TIA适用于任何有建议的人。

我在Node中遇到了相同的错误。我正在使用

COPY . .

是否运行-o output
命令创建一个目录
/app/output
,与您在第二阶段尝试复制的
/app/out
不同?
COPY--from=build env/app/out。
应更改为
COPY--from=build env/app/output。
因为您正在发布到名为“output”oof的目录,是的,你们俩都完全正确。。谢谢你发现这样一个愚蠢的错误。