docker-nginx: no matching manifest for linux/amd64 in the manifest list entries

in Dockerfile

FROM nginx:alpine
$ docker-compose build
Building nginx
Step 1/5 : FROM nginx:alpine
alpine: Pulling from library/nginx
ERROR: Service 'nginx' failed to build: no matching manifest for linux/amd64 in the manifest list entries

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Reactions: 79
  • Comments: 33

Commits related to this issue

Most upvoted comments

you can also use the previous build directly FROM nginx:1.13.8-alpine

I saw in other related issues that this should fix itself after a few mins but it has been an hour since I first encountered the error. Is it possible to trigger a manual build right now? @tianon

Tagging for future reference https://github.com/docker-library/official-images/issues/3835

I deemed 1.13.9-alpine to be specific enough.

It’s happening again 😢 nginx:1.14-alpine works though. Will use this until the issue https://github.com/nginxinc/docker-nginx/issues/262 has been resolved.

nginx:alpine now working for me.

Until this is fixed you can use nginx:stable-alpine, it has an older version of nginx, but it’s working fine for me at the moment.

And this is why you should never use non-specific versions in your dependent images.

A better approach would probably be to specifically pull an old sha256 digest of nginx:1.13-alpine or whatever tag you’re using. This way you won’t be pulling an old version of nginx rather just an old build. It is also the recommended workaround in the issue I have linked. What I did was I viewed the history of the nginx alpine readme, copied and pulled the old digest and tagged it as nginx:1.13-alpine

same here docker pull nginx:1.13-alpine

1.13-alpine: Pulling from library/nginx
no matching manifest for linux/amd64 in the manifest list entries

Same problem here with nginx:1.15-alpine. Switch to nginx:stable-alpine works for me.

It’s happening for me too 😦

As @ebernard alluded to, this appears to be due to Dockerhub’s build and release process for official images:

Sometimes, we’ll have non-amd64 image build jobs finish before their amd64 counterparts, and due to the way we push the manifest list objects to the library namespace on the Docker Hub, that results in amd64-using folks (our primary target users) getting errors of the form “no supported platform found in manifest list” or “no matching manifest for XXX in the manifest list entries” (see linked issues below for several reports from users of this variety).

Thus, manifest lists under the library are “eventually consistent” – once all arches complete successfully, the manifest lists get updated to include all the relevant sub-architectures.

https://github.com/docker-library/official-images/issues/3835

A workaround is to use a specific version of a particular tag, e.g. nginx:1.13.8-alpine instead of nginx:alpine

not yet nginx:alpine though

same here. Change to nginx:stable-alpine and everything works fine.

docker pull nginx:alpine alpine: Pulling from library/nginx no matching manifest for unknown in the manifest list entries

1.13.9-alpine is specific enough, but it’s still the version that hasn’t finished building yet, hence why it’s not working.

You can see at https://hub.docker.com/r/amd64/nginx/tags/ that 1.13.9-alpine doesn’t exist yet.

As @rawpixel-vincent said, use 1.13.8-alpine until the new build is ready.