From eccfd8f8d47a55a9ba132ef8d94e9830d65e7830 Mon Sep 17 00:00:00 2001 From: Jafeng <2998840497@qq.com> Date: Mon, 25 Aug 2025 09:56:58 +0800 Subject: [PATCH] perf(deploy): reduce memory/IO during npm install/build for small VMs (NODE_OPTIONS, npm flags) --- deploy/Dockerfile.backend | 4 ++-- deploy/Dockerfile.frontend | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/deploy/Dockerfile.backend b/deploy/Dockerfile.backend index 303a26b..f46e185 100644 --- a/deploy/Dockerfile.backend +++ b/deploy/Dockerfile.backend @@ -2,9 +2,9 @@ FROM node:20-alpine AS builder WORKDIR /app COPY backend/package*.json backend/ # Install all dependencies (including dev) in builder so tools like tsc are available for build -RUN sh -c 'if [ -f backend/package-lock.json ] || [ -f backend/npm-shrinkwrap.json ]; then npm ci --prefix backend; else npm install --prefix backend; fi' +RUN sh -c 'if [ -f backend/package-lock.json ] || [ -f backend/npm-shrinkwrap.json ]; then npm ci --prefix backend --no-audit --no-fund --prefer-offline --no-progress; else npm install --prefix backend --no-audit --no-fund --prefer-offline --no-progress; fi' COPY backend/ backend/ -RUN npm run build --prefix backend +RUN sh -c 'NODE_OPTIONS="--max_old_space_size=512" npm run build --prefix backend' FROM node:20-alpine WORKDIR /app diff --git a/deploy/Dockerfile.frontend b/deploy/Dockerfile.frontend index 9aa28c8..331b4f7 100644 --- a/deploy/Dockerfile.frontend +++ b/deploy/Dockerfile.frontend @@ -2,9 +2,9 @@ FROM node:20-alpine AS builder WORKDIR /app COPY frontend/package*.json frontend/ # Use npm ci when lockfile exists in frontend, fallback to npm install -RUN sh -c 'if [ -f frontend/package-lock.json ] || [ -f frontend/npm-shrinkwrap.json ]; then npm ci --prefix frontend; else npm install --prefix frontend; fi' +RUN sh -c 'if [ -f frontend/package-lock.json ] || [ -f frontend/npm-shrinkwrap.json ]; then npm ci --prefix frontend --no-audit --no-fund --prefer-offline --no-progress; else npm install --prefix frontend --no-audit --no-fund --prefer-offline --no-progress; fi' COPY frontend/ frontend/ -RUN npm run build --prefix frontend +RUN sh -c 'NODE_OPTIONS="--max_old_space_size=512" npm run build --prefix frontend' FROM nginx:stable-alpine COPY --from=builder /app/frontend/dist /usr/share/nginx/html