From c456ece85e90ce8610387b6141c703cb93109302 Mon Sep 17 00:00:00 2001 From: Peleke Sengstacke Date: Thu, 6 Nov 2025 18:17:57 -0500 Subject: [PATCH] perf(ci): optimize Dockerfile layer caching order MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Copy package.json before source code for better layer reuse - Combine ENV statements to reduce layers - Source code copied last (changes most frequently) - ENV vars set before file copies Expected: Better cache hits when only code changes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- Dockerfile | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8feb3b6c..6e5b8e04 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,16 +17,19 @@ WORKDIR /app ARG NEXT_PUBLIC_SUPABASE_URL ARG NEXT_PUBLIC_SUPABASE_ANON_KEY -# Make build args available as env vars during build -ENV NEXT_PUBLIC_SUPABASE_URL=$NEXT_PUBLIC_SUPABASE_URL -ENV NEXT_PUBLIC_SUPABASE_ANON_KEY=$NEXT_PUBLIC_SUPABASE_ANON_KEY +# Set env vars and disable telemetry before copying files +ENV NEXT_PUBLIC_SUPABASE_URL=$NEXT_PUBLIC_SUPABASE_URL \ + NEXT_PUBLIC_SUPABASE_ANON_KEY=$NEXT_PUBLIC_SUPABASE_ANON_KEY \ + NEXT_TELEMETRY_DISABLED=1 + +# Copy package files first for better layer caching +COPY package.json package-lock.json* ./ # Copy dependencies from deps stage COPY --from=deps /app/node_modules ./node_modules -COPY . . -# Disable telemetry during build -ENV NEXT_TELEMETRY_DISABLED=1 +# Copy source code last (changes most frequently) +COPY . . # Build the application RUN npm run build