Procházet zdrojové kódy

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 před 1 měsícem
rodič
revize
dc84a88f50
1 změnil soubory, kde provedl 4 přidání a 3 odebrání
  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