From d572ba52a8dba2e9bfa1e8a4350d037bec2d37b3 Mon Sep 17 00:00:00 2001 From: Danel Kungla Date: Wed, 16 Jul 2025 12:09:14 +0300 Subject: [PATCH] Refactor Dockerfile for improved build and runtime stages --- Dockerfile | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 293cbe4..e419ec3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,18 +1,34 @@ +# --- Stage 1: Build --- FROM node:20-alpine as builder WORKDIR /app RUN npm install -g pnpm@9 -# Copy necessary files for workspace resolution COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ COPY packages packages COPY tooling tooling COPY .env.production .env -# Install all dependencies RUN pnpm install --frozen-lockfile COPY . . -RUN pnpm build \ No newline at end of file +RUN pnpm build + + +# --- Stage 2: Runtime --- +FROM node:20-alpine + +WORKDIR /app + +COPY --from=builder /app ./ + +RUN npm install -g pnpm@9 \ + && pnpm install --prod --frozen-lockfile + +ENV NODE_ENV=production + +EXPOSE 3000 + +CMD ["pnpm", "start"]