ARG ALPINE_VERSION=latest FROM alpine:$ALPINE_VERSION AS builder ARG RUST_VERSION=stable COPY Cargo.lock /usr/src/ COPY Cargo.toml /usr/src/ WORKDIR /usr/src RUN apk add --no-cache rustup build-base openssl-dev openssl-libs-static && \ 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/ COPY templates/ /usr/src/templates/ 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/aoszdos /usr/bin/ CMD [ "/usr/bin/aoszdos" ]