From 139242fc3020c9e48908b2c8656aefa102a00faf Mon Sep 17 00:00:00 2001 From: Manuel Date: Tue, 9 Feb 2021 11:44:33 +0100 Subject: [PATCH] Change docker file structure and reduce image size drastically This change reduces the generated image size of ~2.6 GB to roughly 20 MB --- Dockerfile | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0f8c96a..4ffb604 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,18 +1,21 @@ -FROM rustlang/rust:nightly +FROM rust:alpine as build + +ENV RUSTFLAGS='-C target-feature=-crt-static' + +WORKDIR /app +COPY ./site . +RUN apk add --no-cache musl-dev sqlite-dev +RUN cargo install --path . + +FROM alpine:latest + +COPY --from=build /usr/local/cargo/bin/crablog /app/crablog +WORKDIR /app +RUN apk add --no-cache libgcc sqlite-libs + +ENV ROOT_PATH=/app/content +ENV DATABASE_URL=${ROOT_PATH}/db.sqlite3 EXPOSE 8000 -ENV ROOT_PATH=/root/crablog/content -ENV DATABASE_URL=${ROOT_PATH}/db.sqlite3 - -RUN mkdir -p /root/crablog - -COPY ./site /root/crablog - -# set up database -WORKDIR /root/crablog - -# install crablog -RUN cargo install --path . --root / -j $(nproc) - -CMD ["crablog"] +CMD ["./crablog"]