From 5d73c7046ade79d9b886fb3fb7209ca940b1d623 Mon Sep 17 00:00:00 2001 From: Ashwin Kumar Date: Fri, 10 Apr 2026 17:46:17 +0200 Subject: [PATCH] fix(docker): use Alpine and reduce memory for build - Switch from node:20-slim to node:20-alpine for smaller image - Reduce NODE_OPTIONS memory from 4096 to 2048 - Use Alpine apk instead of apt-get --- Dockerfile | 24 ++++++++++++++++-------- frontend.log | 6 ++++-- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index 32f5fcd..c56d930 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,24 +1,32 @@ -FROM node:20-slim AS builder +# Multi-stage build with memory optimization +FROM node:20-alpine AS builder WORKDIR /app +# Skip browser downloads ENV PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 ENV CYPRESS_INSTALL_BINARY=0 -RUN apt-get update && apt-get install -y \ - python3 \ - make \ - g++ \ - && rm -rf /var/lib/apt/lists/* +# Install build dependencies +RUN apk add --no-cache python3 make g++ +# Copy package files COPY package*.json ./ -RUN npm install --legacy-peer-deps +# Install dependencies with reduced memory +RUN npm install --legacy-peer-deps --prefer-offline --no-audit + +# Copy source COPY . . -RUN NODE_OPTIONS="--max-old-space-size=4096" npm run build +# Build with memory optimization (reduced from 4096 to 2048 for Alpine) +ENV NODE_OPTIONS="--max-old-space-size=2048" +RUN npm run build + +# Runtime stage FROM node:20-alpine WORKDIR /app +# Copy built output COPY --from=builder /app/.output ./.output ENV PORT=9201 diff --git a/frontend.log b/frontend.log index 56c3ebb..74bf8cd 100644 --- a/frontend.log +++ b/frontend.log @@ -23,8 +23,8 @@ vinxi starting dev server 5:38:54 PM [vite] (ssr) page reload .woodpecker.yml 5:42:25 PM [vite] (ssr) page reload .woodpecker.yml 5:42:25 PM [vite] (ssr) page reload .woodpecker.yml - page reload vinxi/routes -5:20:52 AM [vite] (ssr) page reload .woodpecker.yml +5:46:09 PM [vite] (ssr) page reload Dockerfile +r) page reload .woodpecker.yml 5:20:53 AM [vite] (client) page reload .woodpecker.yml 5:23:49 AM [vite] (ssr) page reload .woodpecker.yml 5:23:49 AM [vite] (client) page reload .woodpecker.yml @@ -46,3 +46,5 @@ vinxi starting dev server 5:42:25 PM [vite] (client) page reload .woodpecker.yml 5:42:25 PM [vite] (ssr) page reload .woodpecker.yml 5:42:25 PM [vite] (client) page reload .woodpecker.yml +5:46:09 PM [vite] (ssr) page reload Dockerfile +5:46:09 PM [vite] (client) page reload Dockerfile