Docker files for cross-building Debian packages for other architectures of Rust projects using cargo-deb.
Go to file
Paul van Tilburg 35368240a7
Switch base image to Debian 12 (bookworm)
2023-07-30 21:26:14 +02:00
Dockerfile.arm64 Switch base image to Debian 12 (bookworm) 2023-07-30 21:26:14 +02:00
Dockerfile.armhf Switch base image to Debian 12 (bookworm) 2023-07-30 21:26:14 +02:00
Dockerfile.i386 Switch base image to Debian 12 (bookworm) 2023-07-30 21:26:14 +02:00
README.md Add missing suffixes for the Dockerfiles 2023-03-24 14:30:43 +01:00

README.md

Docker files for cross-builds using cargo-deb

These files allows you to build Debian packages for the (Debian) architectures i386, armhf and arm64 using an amd64 host system.

Note that the Dockerfiles use the full Rust Debian Buster Docker image and not the slim version so that some common build-dependencies (such as libssl-dev) are already present.

Cross-compile to i386

Build the image:

$ docker build . -t cargo-deb-crossbuild/i386 --platform linux/386 -f Dockerfile.i386
STEP 1/5: FROM docker.io/rust:bullseye
Trying to pull docker.io/library/rust:bullseye...
Getting image source signatures
...

In your Rust project, run:

$ docker run --rm -ti -v `pwd`:/app cargo-deb-crossbuild/i386
...
/app/target/debian/<your crate>.deb

You can find the resulting deb file in ./target/debian.

Cross-compile to arm64 (ARM v8)

Build the image:

$ docker build . -t cargo-deb-crossbuild/arm64 --platform linux/arm64/v8 -f Dockerfile.arm64
STEP 1/5: FROM docker.io/rust:bullseye
Trying to pull docker.io/library/rust:bullseye...
Getting image source signatures
...

In your Rust project, run:

$ docker run --rm -ti -v `pwd`:/app cargo-deb-crossbuild/arm64
...
/app/target/debian/<your crate>.deb

You can find the resulting deb file in ./target/debian.

Cross-compile to armhf (ARM v7)

Build the image:

$ docker build . -t cargo-deb-crossbuild/armhf --platform linux/arm/v7 -f Dockerfile.armhf
STEP 1/5: FROM docker.io/rust:bullseye
Trying to pull docker.io/library/rust:bullseye...
Getting image source signatures
...

In your Rust project, run:

$ docker run --rm -ti -v `pwd`:/app cargo-deb-crossbuild/armhf
...
/app/target/debian/<your crate>.deb

You can find the resulting deb file in ./target/debian.