From da7809fd758784e5639177b5320ab6d059eeef76 Mon Sep 17 00:00:00 2001 From: Jellyfrog Date: Sat, 4 Oct 2025 20:16:38 +0200 Subject: [PATCH] Optimize Dockerfile with multi-stage build --- Dockerfile | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index ecb1766..4094a66 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,15 +1,29 @@ -FROM node:lts-alpine - -WORKDIR /app +FROM node:lts-alpine AS build RUN apk add --no-cache openssl +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 the source +# Copy the rest of your source COPY . . -EXPOSE 8080 \ No newline at end of file +# Pre-generate prisma client +RUN node_modules/.bin/prisma generate + +FROM node:lts-alpine + +RUN apk add --no-cache openssl + +USER node:node + +WORKDIR /app + +COPY --from=build --chown=node:node /app . + + +EXPOSE 8080