Docker 构建请求访问被拒绝,存储库不存在或可能需要

问题描述

我正在尝试在不使用 Visual Studio 的情况下生成 Docker 映像。我在项目文件夹中,我从 Windows 10 管理命令行执行 docker build . 我不知道如何进行这项工作。

[+] Building 1.3s (8/9)
 => [internal] load build deFinition from Dockerfile                                              0.0s
 => => transferring dockerfile: 753B                                                              0.0s
 => [internal] load .dockerignore                                                                 0.0s
 => => transferring context: 34B                                                                  0.0s
 => [internal] load Metadata for mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim             0.0s
 => [base 1/2] FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim                          0.0s
 => ERROR FROM docker.io/publish/app:latest                                                       1.2s
 => => resolve docker.io/publish/app:latest                                                       1.2s
 => CACHED [base 2/2] workdir /app                                                                0.0s
 => CACHED [final 1/2] workdir /app                                                               0.0s
 => [auth] publish/app:pull token for registry-1.docker.io                                        0.0s
------
 > FROM docker.io/publish/app:latest:
------
Failed to load cache key: pull access denied,repository does not exist or may require authorization: server message: insufficient_scope: authorization Failed

这是我的 dockerfile:

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
workdir /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
workdir /src
copY ["src/App.Web/App.Web.csproj","src/App.Web/"]
RUN dotnet restore "App.Web.csproj"
copY . .
workdir "/src/App.Web"
RUN dotnet build App.Web.csproj -c Debug -o /app

FROM build as debug
RUN dotnet publish "App.Web.csproj" -c Debug -o /app

FROM base as final
workdir /app
copY --from=publish/app /app .
ENTRYPOINT ["dotnet","App.Web.dll"]

解决方法

您有称为基础、构建和调试的阶段。然后在最后阶段你有:

COPY --from=publish/app /app .

当 docker 找不到具有该名称 publish/app 的舞台时,它会尝试找到不存在的图像。我猜你想从构建阶段复制,例如

COPY --from=build /app .
,

你登录了吗?尝试使用 docker login,然后再次执行 docker build

正如我在此处看到的 aspnet in docker hub 您打算使用的存储库已重命名。改用以下内容

from mcr.microsoft.com/dotnet/aspnet:3.1-buster-slim

存储库已重命名,可以在此处找到类似的问题 similar issue