'Why am I getting this error: ERROR [internal] load metadata
I am a Docker noob and am trying to run the make dev-services script, declared in the skaffold.yml file (I exchanged image and sha names with xxx):
- 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
When I run it, I get this error:
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
Anyone know what might be the problem here? Might it be the google container registry? I'm using Minikube. Is there a Minikube - or Docker - registry that could try? If so, what would I need to change in the skaffold.yaml file?
Thanks a lot in advance :)
Solution 1:[1]
The error:
failed to solve with frontend dockerfile.v0: failed to create LLB definition: unexpected status code [manifests xxx]: 401 Unauthorized
indicates that Docker was unable to get authorization for one of your GCR repositories. Docker will normally get this information from your gcloud
settings. There's a couple of reasons why this may fail:
- You haven't configured Docker for accessing GCR. See the GCR documentation for how to configure access.
- Your account doesn't have permission to access GCR. See the GCR documentation on configuring access control.
- Your login details have expired or been revoked. Use
gcloud auth login
to re-login. - You have multiple accounts, and you're using the wrong account. Try
gcloud auth list
to see your current accounts. You can usegcloud config set account xxx
to set the active account, or set the environmentCLOUDSDK_CORE_ACCOUNT
to set an account for the duration of a session.
Solution 2:[2]
for anyone else coming here from windows OS in your docker desktop settings, uncheck the Use Docker Compose V2 this worked for me, i uncheck it works, i checked to try again and make sure that was the issue and yes it was the issue didn't work , until i uncheck again
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Brian de Alwis |
Solution 2 | Swiss bobo |