diff --git a/frontend/Dockerfile b/frontend/Dockerfile index 9c1ec7e..998b84f 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -1,15 +1,25 @@ +# ---------- deps ---------- +FROM docker.io/node:20-alpine AS deps +WORKDIR /app + +# Install only dependencies first +COPY package*.json ./ +RUN npm install --production --no-audit --no-fund + # ---------- build ---------- FROM docker.io/node:20-alpine AS builder WORKDIR /app -# Clean any existing cache before starting -RUN npm cache clean --force +# Copy production dependencies from deps stage +COPY --from=deps /app/node_modules ./node_modules -# install deps (needs dev deps for build) +# Copy package files COPY package*.json ./ -RUN npm cache clean --force && npm install --prefer-offline --no-audit --no-fund && npm cache clean --force -# app source +# Install dev dependencies +RUN npm install --only=dev --no-audit --no-fund + +# Copy app source COPY . . # disable telemetry; let Next control NODE_ENV during build