From 7d63cac3b91cb8114f6d0b90c0067ffb2159ab46 Mon Sep 17 00:00:00 2001 From: Jellyfrog Date: Fri, 26 Sep 2025 01:23:42 +0200 Subject: [PATCH] Optimize Dockerfile with multi-stage build Also: * Skips installing dev dependencies * Runs as non root --- Dockerfile | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 251ba31..9c31844 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,16 +1,24 @@ -FROM node:lts-alpine +FROM node:lts-alpine AS build WORKDIR /app # Copy only package files and install deps # This layer will be cached as long as package*.json don't change COPY package*.json package-lock.json* ./ -RUN npm ci +RUN --mount=type=cache,target=/root/.npm npm ci --omit=dev # Copy the rest of your source COPY . . +FROM node:lts-alpine + RUN apk add --no-cache openssl +USER node:node -EXPOSE 8080 +WORKDIR /app + +COPY --from=build /app . + + +EXPOSE 8080 \ No newline at end of file