Docker "no match for platform in manifest" - Fix Multi-Arch Builds
The image (or base image) has no variant for the platform you requested. The manifest list exists but lacks an entry for your CPU architecture or OS.
What this error means
A pull or build fails with no match for platform in manifest or no matching manifest for linux/arm64/v8 in the manifest list. It is deterministic for that platform/image pair.
no matching manifest for linux/arm64/v8 in the manifest list entries
# or: failed to solve: no match for platform in manifest: not foundCommon causes
The base image is single-arch
Some images only publish amd64. Requesting --platform=linux/arm64 against such an image finds no matching manifest.
Building a foreign arch without emulation
Building arm64 on an amd64 runner needs QEMU emulation set up; without it, the platform cannot be satisfied.
How to fix it
Set up QEMU and buildx for multi-arch
Enable emulation so non-native platforms can be built.
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
- uses: docker/build-push-action@v6
with:
platforms: linux/amd64,linux/arm64Pick a base image that supports the target arch
- Inspect the base image’s manifest list with
docker buildx imagetools inspect <image>. - Choose a multi-arch base, or build only for the architectures it provides.
- Build natively on a matching-arch runner when emulation is too slow.
How to prevent it
- Confirm base images are multi-arch before targeting multiple platforms.
- Keep QEMU/buildx setup steps in any multi-arch workflow.
- Prefer native-arch runners for performance-sensitive multi-arch builds.