cargo-deb-crossbuild/README.md

75 lines
1.8 KiB
Markdown

# 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 `Dockerfile`s 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:
```console
$ 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:
```console
$ 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:
```console
$ 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:
```console
$ 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:
```console
$ 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:
```console
$ 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`.