node-red / node-red-docker

Repository for all things Node-RED and Docker related
Apache License 2.0
469 stars 382 forks source link

docker pull 'missing signature key' #397

Closed uweng closed 7 months ago

uweng commented 7 months ago

On RedHat 7.9:

  # docker pull docker.io/nodered/node-red
 Using default tag: latest
 Trying to pull repository docker.io/nodered/node-red ... 
 missing signature key

 # docker --version
 Docker version 1.13.1, build 7d71120/1.13.1

Maybe it helps

The image needs to be in v2 json format for it to be pulled via docker.

       "ManifestType": "application/vnd.docker.distribution.manifest.v2+json",

The format can be changed using either of the below methods

Either use the environment variable "export BUILDAH_FORMAT=docker" and then build the image.

    # export BUILDAH_FORMAT=docker
    # buildah bud --pull --no-cache --tag <tag> .

or use the "--format docker" command-line argument appended to the build command

     # buildah bud --format docker --pull --no-cache --tag <tag> .

The root cause is:

By default when an image is built via buildah, it is built in OCI image format. This can be verified using the below command

   # podman image inspect <image> | grep -i manifest
           "ManifestType": "application/vnd.oci.image.manifest.v1+json", 

Docker gives errors while pulling the image, as there are differences in the formats. Note: Using podman, the image can be pulled regardless of the manifest type.

Diagnostic Steps The type of manifest can be verified using the below command

   # podman image inspect <image> | grep -i manifest
           "ManifestType": "application/vnd.oci.image.manifest.v1+json", 
hardillb commented 7 months ago

Docker version 1.13.1 was released in 2017

The latest version is 24.0.7

You need to update your system to something current.

uweng commented 7 months ago

Have you read my description?

hardillb commented 7 months ago

Yes, and the problem is that your docker version is too old.

The nodered/node-red docker images work just fine on supported/current versions of docker.

If you really must run on that level then you can follow the instructions in the repo to build your own local containers. But I expect them to fail for other reasons e.g. https://github.com/node-red/node-red-docker/issues/319

uweng commented 7 months ago

unfortunately redhat will not care docker on there os version 7 any more. in redhat 8 it will be replaced with podman. so we have to upgrade first our os version and change to podman. what a mess. so you can close the case, if you do not see any more solution.