container: Build static executable
dustin/tmpl/pipeline/head This commit looks good
Details
dustin/tmpl/pipeline/head This commit looks good
Details
Building a static executable and distributing it in a "from scratch" container image dramatically reduces the image size: down to 8 MB from 102 MB.master
parent
09bd82d1df
commit
554c1e9cf4
|
@ -1,23 +1,23 @@
|
||||||
FROM registry.fedoraproject.org/fedora-minimal:39 AS build
|
FROM docker.io/library/rust:1.73-alpine AS build
|
||||||
|
|
||||||
RUN --mount=type=cache,target=/var/cache \
|
RUN --mount=type=cache,target=/var/cache \
|
||||||
microdnf install -y \
|
apk add \
|
||||||
--setopt install_weak_deps=0 \
|
musl-dev \
|
||||||
cargo\
|
|
||||||
&& :
|
&& :
|
||||||
|
|
||||||
COPY . /src
|
COPY . /src
|
||||||
|
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
|
|
||||||
RUN cargo build --release --locked
|
RUN cargo build --release --locked \
|
||||||
|
&& strip target/release/tmpl
|
||||||
|
|
||||||
|
|
||||||
FROM registry.fedoraproject.org/fedora-minimal:39
|
FROM scratch
|
||||||
|
|
||||||
COPY --from=build /src/target/release/tmpl /usr/local/bin
|
COPY --from=build /src/target/release/tmpl /tmpl
|
||||||
|
|
||||||
ENTRYPOINT ["/usr/local/bin/tmpl"]
|
ENTRYPOINT ["/tmpl"]
|
||||||
|
|
||||||
LABEL name='tmpl' \
|
LABEL name='tmpl' \
|
||||||
vendor='Dustin C. Hatch' \
|
vendor='Dustin C. Hatch' \
|
||||||
|
|
Loading…
Reference in New Issue