That is a very old Docker image updated very long time ago. If I try to pull it, I get a different error
Error response from daemon: [DEPRECATION NOTICE] Docker Image Format v1 and Docker Image manifest version 2, schema 1 support is disabled by default and will be removed in an upcoming release. Suggest the author of docker.io/library/php:5.4-apache to upgrade the image to the OCI Format or Docker Image manifest v2, schema 2. More information at https://docs.docker.com/go/deprecated-image-specs/
It is because I use the containerd image store which is not compatible with it.
It looks like php:5.5-apache still works, if you can make your code compatible with it.
We are pulling this image to an Azure Webapp and getting the following on it attempting to start:
2024-11-10T00:11:18.444Z ERROR - DockerApiException: Docker API responded with status code=InternalServerError, response={“message”:“missing signature key”}
If it is the same, I would also like to know if there is a way around the issue as I dont believe it will be able to be udpated (The image has not been updated in 9 years)
docker run -d --name dind --privileged docker:19:03
And run the containers based on old images in that Docker in Docker container. I tried, but the Cgroup version on my Linux is v2 and I guess this is why it couldn’t run, but didn’t have time to downgrade.
That was a different error because I used the containerd image store. It wouldn’t solve your problem.
I ran this command on macOS:
hub-tool tag inspect php:5.4-apache
And got “Unsupported mediatype” and a list of numbers
I get a valid manifest for php 5.5-apache. So I’m not sure an old Docker would help actually, but that is my only idea. I also checked other old images like nginx:1.9 for which I got “Unsuppoeted mediatype” too, but nginx:1.10 worked. nginx:1.9 is also about 8 years old
We already are on an “old” docker daemon. We use the docker.io package via ubuntu 24’s package repository, which is 24.0.7 as of this post. This predates " Disabled by default in Release: v26.0" and " Target For Removal In Release: v27.0". Did something change server-side such that no one can pull these images regardless of docker version?
Do you still refer to the error message I got? I think that was a mistake from me to share, because it looks like it is confusing. The version of the manifest file is one thing. If you didn’t get this message, you don’t have this problem and it is irrelevant to you. I just pointed out that in the future, when containerd becomes the default image store, v1 will not even be supported eventually.
I shared that error message before I tried the hub-tool which showed that it could not even read the manifest.
I don’t know what happened to the old images. If you used the same Docker version previously and docke rpull worked, than something must have happened on Docker Hub. If you upgraded Docker to v24 automatically and once you had an older version, maybe an even older Docker could work, but there are also github issues where someone says this happens when something during an operation on the registry server, but I don’t know why only old images would be affected.
So that is why I wanted to try an old Docker like 19.03 or even 18.06, because I don’t remember when was the last time if ever when I pulled that PHP image. I think I always used the FPM versions and that is only available from 5.5. You can try asking about this on Docker Hub
Because if not even older Docker versions can download these images, than there is no reason to keep these images on Docker Hub. And if something happened on Docker Hub that corrupted only old images for example because only these were on an older storage, then you might even get those images restored.
No, I’m referring to this. Versions prior to this deprecation notice should be able to download images but aren’t able to.
Ultimately, I was able to work around this by downloading the image with a third party tool and then hosting it on our local github container registry.