I’d like to run RustDesk which requires an x64 OS on my Pi 3B+ but the OS is x86 because I’m running UniFi Controller, which requires and old version of the MongoDB, which requires x86 OS.
Is there a way to run x86 and x64 containers on the Pi? I realise that one of the containers would need a full OS installed but not sure if you can do that like you can in a VM.
@starkaas Have you used QEMU? You can use QEMU (Quick Emulator) to run x86 containers on ARM-based Raspberry Pi. QEMU is an emulator that allows you to run a different architecture on an ARM machine. You can create a virtual machine using QEMU and install a full x86 OS inside it. Then, you can run the x86 Docker container inside the virtual machine.
Keep in mind that emulating x86 on an ARM device can be slow and resource-intensive, so it may not be suitable for running applications that require high performance.
Also, it is important to note that In Compose version V2.11.0, we introduced the ability to add platforms in the build section and let Compose do a cross-platform build for you. The following Dockerfile logs the name of the service, the targeted platform to build, and the platform used for doing this build:‘’’
FROM --platform=$BUILDPLATFORM golang:alpine AS build
ARG TARGETPLATFORM
ARG BUILDPLATFORM
ARG SERVICENAME
RUN echo "I am $SERVICENAME building for $TARGETPLATFORM, running on $BUILDPLATFORM" > /log
FROM alpine
COPY --from=build /log /log
This Compose file defines an application stack with two services (A and B) which are targeting different build platforms:
I’m very early into my linux journey, and at the beggining of my docker one. A lot of this does make sense though.
I already have the Pi running x86 so I could do the reverse? Hopefully the performamce impact woid be negligible for RustDesk.
It will take some time for me to get my head around this. And sadly I can’t get my hands on a Pi 4 here in Australia without paying ridiculous prices. And not that keen to setup the 3 again.