30 lines
787 B
Docker
30 lines
787 B
Docker
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 && \
|
|
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" ]
|