Добавлен упрощенный Dockerfile для быстрой первой сборки
This commit is contained in:
58
Dockerfile.simple
Normal file
58
Dockerfile.simple
Normal file
@@ -0,0 +1,58 @@
|
||||
# Простой Dockerfile для быстрой первой сборки
|
||||
# Без многоступенчатой сборки - быстрее, но больше размер
|
||||
|
||||
FROM node:18-alpine
|
||||
|
||||
# Устанавливаем необходимые пакеты
|
||||
RUN apk add --no-cache \
|
||||
libc6-compat \
|
||||
openssl
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Копируем package.json и yarn.lock
|
||||
COPY nextjs_space/package.json nextjs_space/yarn.lock ./
|
||||
|
||||
# Оптимизация: пропускаем ненужные бинарники
|
||||
ENV SKIP_SASS_BINARY_DOWNLOAD_FOR_CI=true
|
||||
ENV CYPRESS_INSTALL_BINARY=0
|
||||
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
|
||||
ENV NEXT_TELEMETRY_DISABLED=1
|
||||
|
||||
# Устанавливаем ВСЕ зависимости (нужны для сборки)
|
||||
# Но используем оптимизацию для ускорения
|
||||
RUN yarn install --frozen-lockfile --network-timeout 300000
|
||||
|
||||
# Копируем остальные файлы
|
||||
COPY nextjs_space/ ./
|
||||
|
||||
# Генерируем Prisma Client
|
||||
RUN npx prisma generate
|
||||
|
||||
# Переменные окружения для сборки
|
||||
ARG NEXT_PUBLIC_SITE_URL
|
||||
ENV NEXT_PUBLIC_SITE_URL=${NEXT_PUBLIC_SITE_URL:-http://localhost:3000}
|
||||
ENV NODE_ENV=production
|
||||
|
||||
# Собираем приложение
|
||||
RUN yarn build
|
||||
|
||||
# Удаляем dev-зависимости после сборки (экономия места)
|
||||
RUN yarn install --production --frozen-lockfile --ignore-scripts
|
||||
|
||||
# Создаем пользователя для безопасности
|
||||
RUN addgroup --system --gid 1001 nodejs && \
|
||||
adduser --system --uid 1001 nextjs
|
||||
|
||||
# Меняем владельца файлов
|
||||
RUN chown -R nextjs:nodejs /app
|
||||
|
||||
USER nextjs
|
||||
|
||||
EXPOSE 3000
|
||||
|
||||
ENV PORT=3000
|
||||
ENV HOSTNAME="0.0.0.0"
|
||||
|
||||
# Запускаем приложение
|
||||
CMD ["yarn", "start"]
|
||||
Reference in New Issue
Block a user