docker build -t rust-app-scratch -f Dockerfile.scratch .
docker run --rm rust-app-scratch
Hello world - 4.2MB
Dockerfile | |
target | |
.git | |
.env |
FROM rust:1.68.0-alpine3.16 | |
RUN apk --update --no-cache add g++ pkgconfig openssl-dev | |
WORKDIR /app | |
COPY Cargo.lock . | |
COPY Cargo.toml . | |
RUN cargo fetch --target x86_64-unknown-linux-musl | |
COPY . . | |
RUN cargo build --release | |
FROM scratch | |
# Add to Cargo.toml | |
# [[bin]] | |
# name = "app" | |
# path = "src/main.rs" | |
COPY --from=0 /app/target/release/app /app | |
ENTRYPOINT ["/app"] |
FROM rust:1.65.0-alpine3.16 | |
WORKDIR /app | |
RUN cargo init | |
RUN cargo build --release | |
FROM scratch | |
COPY --from=0 /app/target/release/app /app | |
ENTRYPOINT ["/app"] |