From 139242fc3020c9e48908b2c8656aefa102a00faf Mon Sep 17 00:00:00 2001 From: Manuel Date: Tue, 9 Feb 2021 11:44:33 +0100 Subject: [PATCH 1/2] 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"] From 5e905fa5ca9b8e4b6a1c74cdb63bf68e75db704c Mon Sep 17 00:00:00 2001 From: Manuel Date: Tue, 9 Feb 2021 11:51:58 +0100 Subject: [PATCH 2/2] Include a default environment file --- crablog.env | 6 ++++++ docker-compose.yml | 6 ++---- 2 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 crablog.env diff --git a/crablog.env b/crablog.env new file mode 100644 index 0000000..1bacdfe --- /dev/null +++ b/crablog.env @@ -0,0 +1,6 @@ +SUBMIT_TOKEN=mysupersecretpw +BIND_PORT=8000 +USERNAME= +EMAIL= +TWITTER_ACCOUNT= +GITHUB_ACCOUNT= \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 1be5631..e8a2a0c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,9 +6,7 @@ services: - 8000:8000 hostname: crablog container_name: crablog - env_file: .env + env_file: ./crablog.env restart: unless-stopped volumes: - - ./content:/root/crablog/content -volumes: - myapp: + - ./content:/app/content