Home > Software design >  quarkus container with state hangs on Apple M1
quarkus container with state hangs on Apple M1

Time:11-26

I am building a quarkus (Keycloak 18) based container on the following way:

  1. Start a container from this image quay.io/keycloak/keycloak:18.0.0
  2. Fill the running container with state (users, roles, clients using terraform)
  3. Commit the running container with docker commit running-container my-filled-keycloak-image
  4. The whole process is running in a Github action pipeline

The image can be used on a regular basis and runs quite normal. Only users of an Apple M1 seem to have problem with this image. In most cases starting a container simply gets stuck and hangs until a docker timeout occurs. Sometimes the container is able to start, but on very low performance and very slow.

The problem seems to be related to the Apple M1 architecture and up to now we do not have an idea how to fix this. Any help on this is greatly appreciated.

CodePudding user response:

It looks like you are building images on your CI, which is running on amd64 (Intel) architecture. Unfortunately, this architecture is not natively supported on M1, which uses arm64. So your users with M1 use emulation (search Rosetta, which is not a perfect). The better option is to build multiarch image (image, which contains amd64,arm64,... architectures), so users will use native architecture on their machines.

There is a lot of resources how to build multiarch (multiplatform) Docker images. Random one: https://jitsu.com/blog/multi-platform-docker-builds

  • Related