From 26a9c5fee96f75cbeb89749f12ffdfdac9a402e2 Mon Sep 17 00:00:00 2001 From: Delta1925 Date: Sun, 23 Apr 2023 17:11:19 +0200 Subject: [PATCH] Enable multiarch for docker --- Dockerfile | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/Dockerfile b/Dockerfile index 63dc421..40a96b3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,11 @@ -FROM rust:1.68-alpine3.17 AS bin-builder +ARG base="alpine:3.17" -# Install dependencies -RUN apk add --no-cache openssl-dev musl-dev +FROM ${base} AS bin-builder +RUN apk add --no-cache cargo openssl-dev musl-dev # This will build all dependencies and store them in docker's cache. # This way, it won't be necessary to recompile everything everytime -# Disable static linking, see: https://users.rust-lang.org/t/sigsegv-with-program-linked-against-openssl-in-an-alpine-container/52172 +# It also disables static linking, see: https://users.rust-lang.org/t/sigsegv-with-program-linked-against-openssl-in-an-alpine-container/52172 COPY backend/Cargo.toml . COPY backend/Cargo.lock . RUN echo '[[bin]]' >> Cargo.toml && \ @@ -15,31 +15,28 @@ RUN echo '[[bin]]' >> Cargo.toml && \ RUSTFLAGS='-C target-feature=-crt-static' cargo build --release RUN rm cache.rs && \ rm Cargo.toml - # Build wimple-wkd COPY backend/Cargo.toml . COPY backend/src src RUN RUSTFLAGS='-C target-feature=-crt-static' cargo build --release -FROM node:19-alpine3.17 AS webpage-builder +FROM ${base} AS webpage-builder -# Build website +RUN apk add --no-cache npm COPY website . RUN npm install -g pnpm && \ pnpm install && \ pnpm run build COPY assets assets - # Move website in templates folder RUN mv dist assets/webpage -FROM alpine:3.17 +FROM ${base} -# Put everything together -# It uses user `wkd` for added security -# Install libgcc, because the executable is dynamically linked to it +# The final image uses user `wkd` for added security +# It also installs libgcc, because the executable is dynamically linked to it WORKDIR /wkd RUN apk add --no-cache libgcc && \ adduser --no-create-home --disabled-password wkd && \