Now let's take a silly one
1FROM docker.io/library/rust:1.96-slim-trixie AS builder
2RUN apt-get update && apt-get install -y --no-install-recommends \
3 ca-certificates build-essential cmake perl pkg-config clang mold \
4 && rm -rf /var/lib/apt/lists/*
5ENV RUSTFLAGS="-C linker=clang -C link-arg=-fuse-ld=mold"
6WORKDIR /src
7COPY Cargo.toml Cargo.lock rust-toolchain.toml ./
8COPY lexicons ./lexicons
9COPY crates ./crates
10RUN cargo build --release --package knot-server
11RUN strip target/release/knot-server
12
13FROM gcr.io/distroless/cc-debian13:latest@sha256:1e3c6d9c255be500eb680cdea0ad07554f52ae92dfcbdf07043a2a435b4c1fe3
14COPY --from=builder /src/target/release/knot-server /usr/local/bin/knot-server
15EXPOSE 5555 2222
16ENTRYPOINT ["/usr/local/bin/knot-server"]
17CMD ["/etc/knot2/config.toml"]