Recently I am moving to MacBook with Apple M1 chip, my previous Kafka docker image is obsidiandynamics/kafka, but offically it doesn't support arm64 so far.
My question is,
(1) is it possible to let obsidiandynamics/kafka support arm64?
(2) are there any alternative Kafka images to support arm64? Ideally it is compatible to obsidiandynamics/kafka.
Thanks your help.
It doesn't look like obsidiandynamics/kafka has been maintained for years, so it seems unlikely that they'll be adding an arm64 version of the image.
I've recently used the wurstmeister/kafka image in a sample project and it ran as expected on a new MacBook with the M1 chip, so that could be a good alternative.
Related
I have a bit legacy app build in docker. One of the dependency is ElasticSearch v 1.5.2 which is not working on M1 (I thought docker should handle this platform issues). The only working version is 6+, but I can't just bump it because it breaks everything.
Any ideas would be appreciated
I am trying to build a container from a docker image that seems to be incompatible with M1 macs, it does work with my old laptop which is Intel architecture, after research I'm pretty sure ARM architecture is the issue. When I add the platform linux/amd64 flag for my docker-compose it builds successfully, but I am not sure how platform works. For instance, what happens if I'm building on a Windows machine or some other OS?
The platform option is not currently supported on docker-compose v3: https://github.com/docker/compose/pull/5985
What is this warning:
I have enabled docker compose V2 and set export DOCKER_DEFAULT_PLATFORM=linux/amd64 as an env variable as I believe that this enables an emulation that allows the docker images to run on an Apple M1 chip.
I am new to docker and am wondering if this means that the emulation is working or if I have not configured something correctly?
The warning means that amd64 images have poor performance, and sometimes crashing behavior as well. This is a known issue with Docker + qemu on the Apple Silicon chips. For this reason, Docker recommends avoiding use of amd64 images when possible.
https://docs.docker.com/desktop/mac/apple-silicon/
Not all images are available for ARM64 architecture. You can add --platform linux/amd64 to run an Intel image under emulation. In particular, the mysql image is not available for ARM64. You can work around this issue by using a mariadb image.
However, attempts to run Intel-based containers on Apple silicon machines under emulation can crash as qemu sometimes fails to run the container. In addition, filesystem change notification APIs (inotify) do not work under qemu emulation. Even when the containers do run correctly under emulation, they will be slower and use more memory than the native equivalent.
In summary, running Intel-based containers on Arm-based machines should be regarded as “best effort” only. We recommend running arm64 containers on Apple silicon machines whenever possible, and encouraging container authors to produce arm64, or multi-arch, versions of their containers. We expect this issue to become less common over time, as more and more images are rebuilt supporting multiple architectures.
I've been using dart/flutter for a while, and I'm really enjoying it.
I've read that when building a mobile app, dart builds a native app with arm code. But how native code in one snapshot run in mulity arch cpus(like x86 armeabi-v7, arch64)?
A comment (about a year ago) that still seems to be accurate
https://groups.google.com/forum/#!topic/flutter-dev/SD-gkfJQfzE
Currently we provide pre-built --release, --profile and --debug
binaries for Android 32-bit ARM and --debug binaries for Android x64
(emulators). A description of --release, etc. modes means is here:
https://github.com/flutter/flutter/wiki/Flutter%27s-modes
We have a bug on file about providing --release/--profile binaries for
Android x86: https://github.com/flutter/flutter/issues/9253
Were there other architectures you were looking for?
It's possible to build flutter/engine yourself in various architecture
/ mode flavors beyond the ones we provide prebuilt for you:
https://github.com/flutter/engine/blob/master/CONTRIBUTING.md
Issue 9253 is still open, so release builds currently seem to support only 32-bit ARM
This FAQ explanation seems to indicate that ARMv7 and ARM64 are supported
https://flutter.io/faq/#what-devices-and-os-versions-does-flutter-run-on
Note Flutter currently does not support building for x86 Android (issue #9253) directly, however apps built for ARMv7 or ARM64 run fine (via ARM emulation on many x86 Android devices.
Last year I got pretty excited with Android things and bought an Intel Edison to try it on. I recently found some time to work on it and realized it is no longer a supported hardware and I am not able to do any thing with it. :(
Any help would be appreciated!
Intel has stopped support, but there is still community activity: there is a Yocto image builder that currently builds Yocto Warrior and Debian Buster with kernel v5.4 here: https://edison-fw.github.io/meta-intel-edison/