# ------------------- # 1. Build stage # ------------------- FROM node:22-alpine AS builder # Устанавливаем pnpm глобально RUN npm install -g pnpm WORKDIR /app # Копируем манифесты и устанавливаем зависимости COPY pnpm-lock.yaml ./ COPY package.json ./ RUN pnpm install --frozen-lockfile # Копируем исходники и билдим Strapi admin COPY . . RUN pnpm build # ------------------------ # 2. Runtime stage # ------------------------ FROM node:22-alpine # Устанавливаем pnpm RUN npm install -g pnpm WORKDIR /app # Копируем только lockfile и package.json COPY pnpm-lock.yaml ./ COPY package.json ./ RUN pnpm install --frozen-lockfile --prod # Копируем билд и исходники из builder COPY --from=builder /app . # Открываем порт и запускаем EXPOSE 1337 CMD ["pnpm", "start"]