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"] |