From 730c1d32ef43de8ed06d206a241a9b9d69bc5870 Mon Sep 17 00:00:00 2001 From: Tianyue Ren Date: Tue, 4 Jul 2023 20:55:30 +0800 Subject: [PATCH] optimize dockerfile to cache build-tools Signed-off-by: Tianyue Ren --- docker/Dockerfile | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index b71e212..1e78c7e 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,8 +1,5 @@ FROM alpine:3.18.2 AS builder -COPY Cargo.* /tmp/iptoasn/ -COPY src /tmp/iptoasn/src - WORKDIR /tmp/iptoasn RUN apk add --update --no-cache ca-certificates \ @@ -12,18 +9,23 @@ RUN apk add --update --no-cache ca-certificates \ && apk add --no-cache --virtual .build-rust \ rust \ cargo \ - libressl-dev \ - \ - && cargo build --release \ - && strip target/release/iptoasn-webservice \ - && mv target/release/iptoasn-webservice /usr/bin/iptoasn-webservice \ - && adduser -D app \ - \ - && apk del .build-rust \ - && rm -rf ~/.cargo \ - /var/cache/apk/* \ - /tmp/* + libressl-dev +COPY Cargo.* /tmp/iptoasn/ +COPY src /tmp/iptoasn/src + +RUN cargo build --release \ + && strip target/release/iptoasn-webservice + +FROM alpine:3.18.2 as prod + +RUN apk add --update --no-cache ca-certificates \ + libressl \ + llvm-libunwind \ + libgcc \ + && adduser -D app + +COPY --from=0 /tmp/iptoasn/target/release/iptoasn-webservice /usr/bin/iptoasn-webservice COPY docker/iptoasn-entrypoint.sh /iptoasn-entrypoint.sh RUN chmod +x /iptoasn-entrypoint.sh