# This Dockerfile uses `serve` npm package to serve the static files with node process. # You can find the Dockerfile for nginx in the following link: # https://github.com/refinedev/dockerfiles/blob/main/vite/Dockerfile.nginx FROM refinedev/node:20 AS base FROM base AS deps # Копируем только файлы зависимостей COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* .npmrc* ./ RUN \ if [ -f yarn.lock ]; then yarn install --frozen-lockfile; \ elif [ -f package-lock.json ]; then npm ci; \ elif [ -f pnpm-lock.yaml ]; then npm install -g pnpm && pnpm install --frozen-lockfile; \ else echo "❌ Lockfile not found." && exit 1; \ fi FROM base AS builder ENV NODE_ENV=production # Обязательно создать рабочую директорию WORKDIR /app/refine COPY --from=deps /app/refine/node_modules ./node_modules COPY . . # Добавлена проверка и вывод логов RUN echo "🚧 Starting build..." && npm run build || (echo "❌ Build failed" && exit 1) FROM base AS runner ENV NODE_ENV=production RUN npm install -g serve WORKDIR /app/refine COPY --from=builder /app/refine/dist ./ USER refine CMD ["serve", "-s", ".", "-l", "3000"]