I am running minikube on my M1 machine i.e. arm64 arch The minikunbe start command is:
minikube start -p foobar --kubernetes-version=v1.23.16 --container-runtime=docker --vm=true --network socker_vmnet --cpus 4 --memory 10g
When pulling mockserver image i.e.
docker pull mockserver/mockserver:5.15.0
You can see that the result of the pull
command and specifically the architecture which is arm64:
[
{
"Id": "sha256:95de41c9a8f374c82ed7ddb5c3c239d745667a6c6ef37819d48507e8039aab68",
"RepoTags": [
"mockserver/mockserver:5.15.0"
],
"RepoDigests": [
"mockserver/mockserver@sha256:0f9ef78c94894ac3e70135d156193b25e23872575d58e2228344964273b4af6b"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2023-01-12T09:24:32.534016275Z",
"Container": "",
"ContainerConfig": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": null,
"Cmd": null,
"Image": "",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": null
},
"DockerVersion": "",
"Author": "James Bloom \"jamesdbloom@gmail.com\"",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "nonroot",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"1080/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"JAVA_VERSION=17.0.4",
"LANG=C.UTF-8",
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt",
"SERVER_PORT=1080"
],
"Cmd": null,
"ArgsEscaped": true,
"Image": "",
"Volumes": null,
"WorkingDir": "/home/nonroot",
"Entrypoint": [
"java",
"-Dfile.encoding=UTF-8",
"-cp",
"/mockserver-netty-jar-with-dependencies.jar:/libs/*",
"-Dmockserver.propertyFile=/config/mockserver.properties",
"org.mockserver.cli.Main"
],
"OnBuild": null,
"Labels": null
},
"Architecture": "arm64",
"Os": "linux",
"Size": 275668416,
"VirtualSize": 275668416,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/09023f315a1db5df781df9dcd495575e3fa5ffc869b05867b9dbdac6cc0f43d7/diff:/var/lib/docker/overlay2/c12958ff74a0d0b38d4a9078418a133896971503074d220a2b55a96ff1890cf1/diff:/var/lib/docker/overlay2/ba271473e4a6fb358e7626e548de976505a9c637a67b5d3e1f3590c3bdc779af/diff:/var/lib/docker/overlay2/c07b166a9ffcc1ee4c0d6f46887384750e467ea8c47cde14b84295b43afd77ec/diff:/var/lib/docker/overlay2/443d2ed633d45c7be4c7d317cf9d4c138a80ba3e15fc4ed6427679efc4f2c70d/diff:/var/lib/docker/overlay2/581bd89c864cd38bd32c9a42f115f4921c427804b91e870ed3e561c905557638/diff",
"MergedDir": "/var/lib/docker/overlay2/1b978f0a0fd1f88dc3afb29152ffec3be06243dde3063f5bb3e51b11c4551881/merged",
"UpperDir": "/var/lib/docker/overlay2/1b978f0a0fd1f88dc3afb29152ffec3be06243dde3063f5bb3e51b11c4551881/diff",
"WorkDir": "/var/lib/docker/overlay2/1b978f0a0fd1f88dc3afb29152ffec3be06243dde3063f5bb3e51b11c4551881/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:cb60fb9b862c6a89f92e484bc3b72bbc0352b41166df5c4a68bfb52f52504a7d",
"sha256:00c562532b203116c721c11aee6fe1fe50b5e2068cee2c343c1df1050a866b3e",
"sha256:e83d4114481dc897d49d5a9a8b68bf71c4f08f1a5c1adff44603c56b958fed53",
"sha256:45f84957a62ddbeee272fc25653d35160f934dd8bb930bc0d30b80d1cfb7cfd3",
"sha256:468a6b28e336b9ead462b8128b8d8c60e458a1facc41b5e925fca21b6718c368",
"sha256:f753c3e5f9d750c2e2b830fcb428451aa734456474d25fba225041ed34c29f05",
"sha256:bccdbe648bac42eb712b7623e7134b1ff1cb0be076d19174482e80d71f664949"
]
},
"Metadata": {
"LastTagTime": "0001-01-01T00:00:00Z"
}
}
]
when running : docker run -d --rm --platform linux/arm64 -P mockserver/mockserver:5.15.0
. I am getting the same java error expected from the incompatibility of amd64 images running on arm64 machines i.e.
exec /usr/bin/java: exec format error
I am not sure what the issue is and I can't find anything wrong with the image and arch type.
Can you?