为什么我会收到此错误:错误 [内部] 加载元数据

cac*_*hew 12 docker skaffold

我是一个 Docker 菜鸟,正在尝试运行在 skaffold.yml 文件中声明的 make dev-services 脚本(我与 xxx 交换了图像和 sha 名称):

- name: dev-services
  build:
    tagPolicy:
      inputDigest: {}
    local:
      push: false
      useBuildkit: true
    artifacts:
    - image: gcr.io/xxx/service-base
      context: .
    - image: gcr.io/xxx/api
      context: server/api/
      requires:
        - image: gcr.io/xxx/service-base
          alias: service_base
    - image: gcr.io/xxx/media
      context: server/media/app
      requires:
        - image: gcr.io/xxx/service-base
          alias: service_base
  deploy:
    kustomize:
      paths:
        - ./k8s/local
        - ./server/api/k8s/development
        - ./server/media/k8s/development

Run Code Online (Sandbox Code Playgroud)

当我运行它时,我收到此错误:

Building [gcr.io/xxx/media]...
[+] Building 2.8s (4/4) FINISHED                                                                                                                                                                            
 => [internal] load build definition from Dockerfile                                                                                                                                                   0.0s
 => => transferring dockerfile: 37B                                                                                                                                                                    0.0s
 => [internal] load .dockerignore                                                                                                                                                                      0.0s
 => => transferring context: 2B                                                                                                                                                                        0.0s
 => [internal] load metadata for docker.io/library/alpine:3.14                                                                                                                                         1.2s
 => ERROR [internal] load metadata for gcr.io/xxx/service-base:xxx                                                     2.6s
------
 > [internal] load metadata for gcr.io/xxx/service-base:xxx:
------
failed to solve with frontend dockerfile.v0: failed to create LLB definition: unexpected status code [manifests xxx]: 401 Unauthorized
Building [gcr.io/xxx/api]...
Canceled build for gcr.io/xxx/api
exit status 1. Docker build ran into internal error. Please retry.
If this keeps happening, please open an issue..
make: *** [dev-services] Error 1

Run Code Online (Sandbox Code Playgroud)

有人知道这里可能有什么问题吗?可能是谷歌容器注册表?我正在使用 Minikube。有 Minikube 或 Docker 注册表可以尝试吗?如果是这样,我需要在 skaffold.yaml 文件中更改什么?

预先非常感谢:)

小智 24

rm ~/.docker/config.json在构建对我有用之前运行此命令。


小智 10

对于从 Windows 操作系统来到这里的其他人,请在 docker 桌面设置中取消选中“使用 Docker Compose V2”,这对我有用,我取消选中它有效,我检查并重试并确保这就是问题所在,是的,问题没有'不工作,直到我再次取消选中

  • 适用于 M1 MacOS。太糟糕了,在我自己弄清楚之后看到了这个。 (2认同)

Alt*_*taf 7

我从这个帖子中得到了一些线索,但是,我只想准确说明您必须注意的步骤。

  1. 打开 Docker 桌面并确保您的屏幕如下所示在此输入图像描述
  2. 单击应用并重新启动 - 这是技巧,它实际上不会重新启动,请按照下一步操作
  3. 右键单击任务栏上的 Docker 应用程序图标 > 单击“重新启动”并等待在此输入图像描述
  4. 现在重试 ps 脚本,希望这对您有用。


Bri*_*wis 1

错误:

failed to solve with frontend dockerfile.v0: failed to create LLB definition: unexpected status code [manifests xxx]: 401 Unauthorized

表示 Docker 无法获得您的 GCR 存储库之一的授权。Docker 通常会从您的gcloud设置中获取此信息。有几个原因可能导致此操作失败:

  • 您尚未配置 Docker 来访问 GCR。有关如何配置访问的信息, 请参阅 GCR 文档。
  • 您的帐户无权访问 GCR。请参阅有关配置访问控制 的 GCR 文档。
  • 您的登录详细信息已过期或已被撤销。用于gcloud auth login重新登录。
  • 您有多个帐户,但您使用了错误的帐户。尝试gcloud auth list查看您的当前帐户。您可以使用gcloud config set account xxx设置活动帐户,或设置环境CLOUDSDK_CORE_ACCOUNT来设置会话持续时间的帐户。