Setting up Rust Lang on Alpine is relatively straight-forward. You get the dependencies that includes clang and lld from the apk repositories and curl to download and install the Rust Toolchain.

1. Getting the dependencies

We will need a C compiler and a Linker. Actually only the linker will be used to link your binaries against the standard C library unless your Rust project is explicitly called C programs. I will be using the LLVM Project’s lld linker and clang compiler.

$ apk add clang lld

I would also need curl to actually download the Rust comiler toolchain in the second step.

2. Getting Rust

I will just use the standard Rust installation method as shown in the official website.

$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

I will go ahead and select all the defaults, which in case of Alpine will look something like below:

Current installation options:

default host triple: x86_64-unknown-linux-musl
    default toolchain: stable (default)
            profile: default
modify PATH variable: yes

1) Proceed with installation (default)
2) Customize installation
3) Cancel installation

You can change the defaults if you like. Make sure to add ~/.cargo/bin to your PATH variable.

$ source ~/.cargo/env

3. Compiling a Rust Program

To get started with Rust, let’s try running a simple “Hello, World!” program:

$ cargo new hello
$ cd ./hello
$ RUSTFLAGS="-C linker=clang -C link-arg=-fuse-ld=lld" cargo build

Notice, we have to pass RUSTFLAGS variable so that the rustc compiler would know which C compiler and linker to invoke.

4. Static binaries

That’s it. Now you have a barely working Rust Lang environment. Have fun fellow Rustaceans. If you want to build static binaries for some targets with glibc defaults, you can use the flag --target x86_64-unknown-linux-musl.