From 7838e2e60f48ac8edc37ef6243945ef5bc198efc Mon Sep 17 00:00:00 2001 From: Bivekich Date: Mon, 30 Jun 2025 00:06:11 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20Dockerfile:=20=D0=B7=D0=B0=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20pnpm=20=D0=BD=D0=B0=20npm=20=D0=B4=D0=BB=D1=8F?= =?UTF-8?q?=20=D1=83=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D0=B5=D0=B9=20=D0=B8=20=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F,?= =?UTF-8?q?=20=D0=BE=D0=BF=D1=82=D0=B8=D0=BC=D0=B8=D0=B7=D0=B0=D1=86=D0=B8?= =?UTF-8?q?=D1=8F=20=D1=8D=D1=82=D0=B0=D0=BF=D0=BE=D0=B2=20=D1=81=D0=B1?= =?UTF-8?q?=D0=BE=D1=80=D0=BA=D0=B8=20=D0=B8=20=D1=83=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D0=BA=D0=B8=20production=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D1=81=D0=B8=D0=BC=D0=BE=D1=81=D1=82=D0=B5=D0=B9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index cca0d0a..c41a83c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,19 +1,15 @@ # Многоэтапная сборка для оптимизации размера образа FROM node:20-alpine AS base -# Установка pnpm глобально -RUN npm install -g pnpm - # Этап установки зависимостей FROM base AS deps WORKDIR /app # Копируем файлы для установки зависимостей COPY package*.json ./ -COPY pnpm-lock.yaml* ./ -# Устанавливаем зависимости -RUN pnpm install --frozen-lockfile +# Устанавливаем все зависимости для сборки +RUN npm ci # Этап сборки FROM base AS builder @@ -24,7 +20,7 @@ COPY --from=deps /app/node_modules ./node_modules COPY . . # Собираем приложение -RUN pnpm run build +RUN npm run build # Финальный этап - production FROM base AS runner @@ -34,10 +30,14 @@ WORKDIR /app RUN addgroup --system --gid 1001 nodejs RUN adduser --system --uid 1001 astro +# Копируем package.json для установки production зависимостей +COPY --from=builder --chown=astro:nodejs /app/package*.json ./ + +# Устанавливаем только production зависимости +RUN npm ci --only=production && npm cache clean --force + # Копируем собранное приложение COPY --from=builder --chown=astro:nodejs /app/dist ./dist -COPY --from=builder --chown=astro:nodejs /app/node_modules ./node_modules -COPY --from=builder --chown=astro:nodejs /app/package.json ./package.json # Переключаемся на пользователя astro USER astro