Drastically reduce the Docker image size to 1.56MB
This commit is contained in:
@@ -1,3 +1,7 @@
|
|||||||
|
[profile.release]
|
||||||
|
strip = true
|
||||||
|
panic = "abort"
|
||||||
|
|
||||||
[workspace]
|
[workspace]
|
||||||
members = [
|
members = [
|
||||||
"board-shared",
|
"board-shared",
|
||||||
|
@@ -3,21 +3,21 @@ FROM rust:1.68.0-slim as builder
|
|||||||
ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse
|
ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse
|
||||||
WORKDIR /usr/src/board
|
WORKDIR /usr/src/board
|
||||||
|
|
||||||
|
# Build with musl to statically link
|
||||||
|
RUN rustup target add x86_64-unknown-linux-musl
|
||||||
|
|
||||||
COPY Cargo.toml /usr/src/board/Cargo.toml
|
COPY Cargo.toml /usr/src/board/Cargo.toml
|
||||||
COPY board-frontend /usr/src/board/board-frontend
|
COPY board-frontend /usr/src/board/board-frontend
|
||||||
COPY board-network /usr/src/board/board-network
|
COPY board-network /usr/src/board/board-network
|
||||||
COPY board-server /usr/src/board/board-server
|
COPY board-server /usr/src/board/board-server
|
||||||
COPY board-shared /usr/src/board/board-shared
|
COPY board-shared /usr/src/board/board-shared
|
||||||
|
|
||||||
# Build with musl to run on Alpine
|
|
||||||
RUN rustup target add x86_64-unknown-linux-musl
|
|
||||||
RUN cargo build --target x86_64-unknown-linux-musl --release --bin board-server
|
RUN cargo build --target x86_64-unknown-linux-musl --release --bin board-server
|
||||||
|
|
||||||
|
FROM scratch AS runtime
|
||||||
|
|
||||||
FROM alpine:3.17.2 AS runtime
|
COPY --from=builder /usr/src/board/target/x86_64-unknown-linux-musl/release/board-server /
|
||||||
|
|
||||||
COPY --from=builder /usr/src/board/target/x86_64-unknown-linux-musl/release/board-server /usr/local/bin
|
|
||||||
|
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
|
|
||||||
ENTRYPOINT ["/usr/local/bin/board-server"]
|
ENTRYPOINT ["/board-server"]
|
||||||
|
Reference in New Issue
Block a user