【问题标题】:Docker - open /var/lib/docker/overlay2/xxx/merged/etc/passwd: no such file or directoryDocker - 打开/var/lib/docker/overlay2/xxx/merged/etc/passwd:没有这样的文件或目录
【发布时间】:2021-09-08 10:58:45
【问题描述】:

我正在尝试“docker build -t aspnetapp”。 但它停止并在下面显示错误。

=> ERROR [base 2/2] WORKDIR /app                                                                                                                                                                            ------
 > [base 2/2] WORKDIR /app:
------
open /var/lib/docker/overlay2/702cb1f56ae4d4a7a5c14cf0db796842b47c7a237a02216dd59ac7bfd8044fca/merged/etc/passwd: no such file or directory

我尝试过的:

  • 删除了 C:\ProgramData 上的 DockerDesktop 文件夹
  • 重启 Docker
  • 卸载并重新安装 Docker

没有任何作用。有没有人有想法来完成这项工作?

下面是我的 Dockerfile

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-nanoserver-1903 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-nanoserver-1903 AS build
WORKDIR /src
COPY ["SampleCoreProject.csproj", "SampleCoreProject/"]
RUN dotnet restore "SampleCoreProject.csproj"
COPY . .
WORKDIR "/src/SampleCoreProject"
RUN dotnet build "SampleCoreProject.csproj" -c Release -o /app/build

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

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

【问题讨论】:

  • 请包含您的整个 Dockerfile
  • 嗨 @tentative 我已经添加了我的 Dockerfile
  • 有人可以帮忙吗?
  • 请添加整个输出以查看每个阶段发生的情况以及是否在发布阶段/app/publish实际上正在创建
  • SampleCoreProject.csprojDockerfile 是否在同一个文件夹中?

标签: docker docker-compose docker-machine docker-build


【解决方案1】:

我创建了一个新项目,.csprojDockerfile 在同一个文件夹中,Dockerfile 和你的有点不同,试试这个:

FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build
WORKDIR /src
COPY ["SampleCoreProject.csproj", "."]
RUN dotnet restore "./SampleCoreProject.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "SampleCoreProject.csproj" -c Release -o /app/build

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

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

【讨论】:

  • 嗨@frank_lee 我仍然遇到同样的问题。我复制了你的,但仍然没有任何变化。
  • 我换了基础镜像,请重试,谢谢
猜你喜欢
  • 1970-01-01
  • 2022-01-25
  • 2022-07-13
  • 1970-01-01
  • 2019-08-30
  • 1970-01-01
  • 1970-01-01
  • 2016-02-18
  • 2019-02-27
相关资源
最近更新 更多