Переглянути джерело

perf: Docker BuildKit cache mounts для npm install и Next.js build

- --mount=type=cache,target=/root/.npm — кэширует скачанные пакеты между билдами
- --mount=type=cache,target=/app/.next/cache — кэширует Next.js build cache
- Убран звёздочный glob package-lock.json* (файла нет)
neyrogovnarik 1 місяць тому
батько
коміт
dc84a88f50
1 змінених файлів з 4 додано та 3 видалено
  1. 4 3
      frontend/Dockerfile

+ 4 - 3
frontend/Dockerfile

@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM node:20-alpine AS builder
 
 ARG NEXT_PUBLIC_API_URL
@@ -12,10 +13,10 @@ ENV NEXT_PUBLIC_YANDEX_GEOCODER_API_KEY=$NEXT_PUBLIC_YANDEX_GEOCODER_API_KEY
 ENV NEXT_PUBLIC_GIT_HASH=$NEXT_PUBLIC_GIT_HASH
 
 WORKDIR /app
-COPY package.json package-lock.json* ./
-RUN npm install
+COPY package.json ./
+RUN --mount=type=cache,target=/root/.npm npm install
 COPY . .
-RUN npm run build
+RUN --mount=type=cache,target=/app/.next/cache npm run build
 
 FROM node:20-alpine AS runner
 WORKDIR /app