Cross Compilation using Docker
We can also use docker
to cross compile on every platform and OS that runs docker
and qemu
:
-
Setup a docker custom builder
docker buildx create \ --name container-builder \ --driver docker-container \ --use --bootstrap
If you are not using Docker-Desktop you might have to install QEMU
-
Create a docker
compose-file.yml
Here we are building a
arm64
binary, so we setplatform: linux/arm64
services: build-container: image: rust:1.79-bookworm platform: linux/arm64 command: bash -c " apt-get update && apt-get install -y \ libasound2-dev \ libssl-dev \ pkg-config && curl -sSL https://api.github.com/repos/Spotifyd/spotifyd/tarball/v0.3.5 | tar xz -C /spotifyd --strip-components=1 && cargo build --release && cp /spotifyd/target/release/spotifyd /build/" working_dir: /spotifyd volumes: - ./:/build
-
Run
docker compose up
This will copy the build
spotifyd
binary in the current directory.