I’ve built an Elasticsearch 2.4.4 Docker image to support both amd64 & arm64 (gordysc/elasticsearch:2.4.4). When I inspect the manifest on my M1 Mac it lists the following:
{
"schemaVersion": 2,
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"manifests": [
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 2196,
"digest": "sha256:8b00b403d6dc4d17673053d14fb7db584923175696a8ddf3536b0463349cff8e",
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 2196,
"digest": "sha256:cb627ceca76b9fae18df022de2c69644aa827c516de99a57428ad980906b5c7b",
"platform": {
"architecture": "arm64",
"os": "linux"
}
}
]
}
I need to support both platforms for my development team so my docker-compose.yml looks like so:
version: "3.9"
services:
elasticsearch:
container_name: elasticsearch
image: gordysc/elasticsearch:2.4.4
ports:
- "9200:9200"
Note: I can’t just specify the arm64 platform as developers on both architectures will have to work with this file.
However, when I attempt to pull the image down it complains with the following:
no matching manifest for linux/arm64 in the manifest list entries
My hunch is the manifest file for the image is missing something, but I’m not sure what?