Skip to content

Pushing an image to GCR under a new tag fails with 401 Unauthorized #446

@howardjohn

Description

@howardjohn
$ echo 'FROM alpine' > Dockerfile
$ docker buildx build . -t gcr.io/.../cache-test:latest --push
[+] Building 5.4s (5/5) FINISHED
 => [internal] load .dockerignore                                                                                                  0.0s
 => => transferring context: 2B                                                                                                    0.0s
 => [internal] load build definition from Dockerfile                                                                               0.0s
 => => transferring dockerfile: 49B                                                                                                0.0s
 => [internal] load metadata for docker.io/library/alpine:latest                                                                   1.3s
 => CACHED [1/1] FROM docker.io/library/alpine@sha256:c0e9560cda118f9ec63ddefb4a173a2b2a0347082d7dff7dc14272e7841a5b5a             0.0s
 => => resolve docker.io/library/alpine@sha256:c0e9560cda118f9ec63ddefb4a173a2b2a0347082d7dff7dc14272e7841a5b5a                    0.0s
 => exporting to image                                                                                                             4.1s
 => => exporting layers                                                                                                            0.0s
 => => exporting manifest sha256:4567b80f4b7d8f139e9574aaa0850c8c4d89cc36b40f973902eab249492a78c6                                  0.0s
 => => exporting config sha256:8d19be48f0403c567476dc8607fc05eeb8a33846798029f7b4bd2e94f3ee331f                                    0.0s
 => => pushing layers                                                                                                              2.9s
 => => pushing manifest for gcr.io/<project>/cache-test:latest                                                              1.1s
$ docker buildx build . -t gcr.io/<project>/cache-test:v1 --push
[+] Building 2.3s (5/5) FINISHED
 => [internal] load .dockerignore                                                                                                  0.0s
 => => transferring context: 2B                                                                                                    0.0s
 => [internal] load build definition from Dockerfile                                                                               0.0s
 => => transferring dockerfile: 31B                                                                                                0.0s
 => [internal] load metadata for docker.io/library/alpine:latest                                                                   1.3s
 => CACHED [1/1] FROM docker.io/library/alpine@sha256:c0e9560cda118f9ec63ddefb4a173a2b2a0347082d7dff7dc14272e7841a5b5a             0.0s
 => => resolve docker.io/library/alpine@sha256:c0e9560cda118f9ec63ddefb4a173a2b2a0347082d7dff7dc14272e7841a5b5a                    0.0s
 => ERROR exporting to image                                                                                                       1.0s
 => => exporting layers                                                                                                            0.0s
 => => exporting manifest sha256:4567b80f4b7d8f139e9574aaa0850c8c4d89cc36b40f973902eab249492a78c6                                  0.0s
 => => exporting config sha256:8d19be48f0403c567476dc8607fc05eeb8a33846798029f7b4bd2e94f3ee331f                                    0.0s
 => => pushing layers                                                                                                              0.2s
 => => pushing manifest for gcr.io/<project>/cache-test:v1                                                                  0.7s
------
 > exporting to image:
------
failed to solve: rpc error: code = Unknown desc = failed commit on ref "manifest-sha256:4567b80f4b7d8f139e9574aaa0850c8c4d89cc36b40f973902eab249492a78c6": unexpected status: 401 Unauthorized

The same commands when used in a non-buildx context work fine

$ docker version
Client: Docker Engine - Community
 Version:           20.10.0-rc1
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        5cc2396
 Built:             Tue Nov 17 22:48:41 2020
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.0-rc1
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       131bf7e
  Built:            Tue Nov 17 22:52:57 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.4.1
  GitCommit:        c623d1b36f09f8ef6536a057bd658b3aa8632828
 runc:
  Version:          1.0.0-rc92
  GitCommit:        ff819c7e9184c13b7c2607fe6c30ae19403a7aff
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
$ uname -a
Linux howardjohn-glaptop2 5.7.17-1rodete4-amd64 #1 SMP Debian 5.7.17-1rodete4 (2020-10-01) x86_64 GNU/Linux

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions