I just downloaded Docker Preview v3.1 https://docs.docker.com/docker-for-mac/apple-m1/ and tried running keycloak.
Anyone else running into this issue?
docker run -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin quay.io/keycloak/keycloak:12.0.4
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
Add this snipped to your ~/.zshrc
and ~/.bashrc
. It allows you not to repeat the flag anytime you perform a docker run
command:
# useful only for Mac OS Silicon M1,
# still working but useless for the other platforms
docker() {
if [[ `uname -m` == "arm64" ]] && [[ "$1" == "run" || "$1" == "build" ]]; then
/usr/local/bin/docker "$1" --platform linux/amd64 "${@:2}"
else
/usr/local/bin/docker "$@"
fi
}
Just found this post: https://github.com/docker/for-mac/issues/5310#issuecomment-779791882
Using this image, I am now able to startup keycloak. https://hub.docker.com/r/wizzn/keycloak
For me, the error happened because I build the docker image on an M1 chip Macbook, and tried to run the image on a Linux machine.
This worked for me:
Build the docker image using the same machine that needs to run it, and it worked.
Similar answer to what @li Etzyio replied, the error is telling you that the platform you are using to build the image locally is a different platform than the one used for the image. This happens for M1 computers (and probably other computers), so, what you have to do is specify the --platform <PLATFORM_SPEC>
to the docker build
command, and replace the <PLATFORM_SPEC>
for the one the error is telling you (in this case linux/amr64/v8
).
Also something that had worked for me is to set these environment variables:
export DOCKER_BUILDKIT=0
export COMPOSE_DOCKER_CLI_BUILD=0
export DOCKER_DEFAULT_PLATFORM=linux/amd64
if you don't want to pass the flag --platform
every-time you run the build command.
If you run Docker Workstation on an M1 mac, you can leverage the Docker Workstation multi-CPU architecture support , which includes the buildx command . It allows you to create images for different CPUs.
To build a Linux/AMD/Intel image on your M1 mac workstation, run the following.
docker buildx build --platform=linux/amd64 -t myorg/mytag:1.0.0 .
Placing docker buildx
in front starts the command with BuildKit. See the links above for details.
on M1 running on this image . works for me.
docker run -d -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin wizzn/keycloak:14
I had this issue because in my Dockerfile i used FROM java:8
which doesn't support arm64.
I fix it by running the following command:
docker pull openjdk
then changed my Dockerfile to
FROM openjdk:latest
The following will do the trick when building images on M1 machines:
docker build -t <image-name> --platform linux/x86_64
I also had this problem when I upgraded to a new version
I fix it by delete all images was builded by old version "docker system prune --all" and re build image
This solves the porblem in Mac too
docker pull openjdk then changed my Dockerfile to
FROM openjdk:latest
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.