ARG ALPINE_VERSION=latest FROM alpine:$ALPINE_VERSION as builder COPY Cargo.lock /usr/src/ COPY Cargo.toml /usr/src/ COPY src/ /usr/src/src/ WORKDIR /usr/src RUN apk add --no-cache rustup build-base && \ rustup-init -qy --profile=minimal --default-toolchain=$RUST_VERSION && \ source "$HOME/.cargo/env" && \ mkdir src && echo "fn main() {}" > src/main.rs && \ cargo fetch && \ cargo build --release --target=x86_64-unknown-linux-musl && \ rm src/main.rs COPY src/ /usr/src/src/ RUN source "$HOME/.cargo/env" && \ touch src/main.rs && \ cargo build --release --target=x86_64-unknown-linux-musl FROM alpine:$ALPINE_VERSION COPY --from=builder /usr/src/target/x86_64-unknown-linux-musl/release/web-template /usr/bin/ CMD [ "/usr/bin/web-template" ]