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