🚀 Help me to become a full-time open-source developer by sponsoring me on GitHub
Docker images for compiling static Rust binaries using musl-cross-make, inspired by rust-musl-builder
Currently we have the following prebuilt Docker images on Docker Hub, supports x86_64(amd64) and aarch64(arm64) architectures.
Rust toolchain Cross Compile Target Docker Image Tag stable aarch64-unknown-linux-musl aarch64-musl stable arm-unknown-linux-musleabi arm-musleabi stable arm-unknown-linux-musleabihf arm-musleabihf stable armv5te-unknown-linux-musleabi armv5te-musleabi stable armv7-unknown-linux-musleabi armv7-musleabi stable armv7-unknown-linux-musleabihf armv7-musleabihf stable i586-unknown-linux-musl i586-musl stable i686-unknown-linux-musl i686-musl stable mips-unknown-linux-musl mips-musl stable mipsel-unknown-linux-musl mipsel-musl stable mips64-unknown-linux-muslabi64 mips64-muslabi64 stable mips64el-unknown-linux-muslabi64 mips64el-muslabi64 stable powerpc64le-unknown-linux-musl powerpc64le-musl stable riscv64gc-unknown-linux-musl riscv64gc-musl stable x86_64-unknown-linux-musl x86_64-muslTo use armv7-unknown-linux-musleabihf
target for example, first pull the image:
docker pull ghcr.io/rust-cross/rust-musl-cross:armv7-musleabihf # Also available on Docker Hub # docker pull messense/rust-musl-cross:armv7-musleabihf
Then you can do:
alias rust-musl-builder='docker run --rm -it -v "$(pwd)":/home/rust/src ghcr.io/rust-cross/rust-musl-cross:armv7-musleabihf' rust-musl-builder cargo build --release
This command assumes that $(pwd)
is readable and writable. It will output binaries in armv7-unknown-linux-musleabihf
. At the moment, it doesn't attempt to cache libraries between builds, so this is best reserved for making final release builds.
rust-musl-cross
uses musl-libc, musl-gcc with the help of musl-cross-make to make it easy to compile, and the new rustup target
support.
Currently we install stable Rust by default, if you want to switch to beta/nightly Rust, you can do it by extending from our Docker image, for example to use beta Rust for target x86_64-unknown-linux-musl
:
FROM ghcr.io/rust-cross/rust-musl-cross:x86_64-musl RUN rustup update beta && \ rustup target add --toolchain beta x86_64-unknown-linux-musl
You can use the musl-strip
command inside the image to strip binaries, for example:
docker run --rm -it -v "$(pwd)":/home/rust/src ghcr.io/rust-cross/rust-musl-cross:armv7-musleabihf musl-strip /home/rust/src/target/release/example
Licensed under The MIT License
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4