42 lines
937 B
Docker
42 lines
937 B
Docker
# -------------------
|
|
# 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"]
|