#################################################################################################### ## Builder #################################################################################################### FROM rust:1-alpine3.19 # This is important, see https://github.com/rust-lang/docker-rust/issues/85 ENV RUSTFLAGS="-C target-feature=-crt-static" RUN apk add --no-cache musl-dev WORKDIR /app COPY ./ /app RUN cargo build --release RUN strip target/release/small-rust #################################################################################################### ## Final image #################################################################################################### FROM alpine:3.19 RUN apk add --no-cache libgcc COPY --from=0 /app/target/release/small-rust . ENTRYPOINT ["/small-rust"] #################################################################################################### ## Alternatively use this builder #################################################################################################### #FROM rust:latest AS builder # #RUN rustup target add x86_64-unknown-linux-musl #RUN apt update && apt install -y musl-tools musl-dev #RUN update-ca-certificates # ## Create appuser #ENV USER=small-rust #ENV UID=10001 # #RUN adduser \ # --disabled-password \ # --gecos "" \ # --home "/nonexistent" \ # --shell "/sbin/nologin" \ # --no-create-home \ # --uid "${UID}" \ # "${USER}" # # #WORKDIR /app # #COPY ./ . # #RUN cargo build --target x86_64-unknown-linux-musl --release