diff --git a/Dockerfile b/Dockerfile index e636d51..0749caa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Многоступенчатая сборка для оптимизации размера образа -FROM node:18-alpine AS builder +FROM node:20-alpine AS builder # Устанавливаем рабочую директорию WORKDIR /app @@ -7,8 +7,8 @@ WORKDIR /app # Копируем файлы зависимостей COPY package*.json ./ -# Устанавливаем зависимости -RUN npm ci --only=production && npm cache clean --force +# Устанавливаем ВСЕ зависимости (включая dev для сборки) +RUN npm ci && npm cache clean --force # Копируем исходный код COPY . . @@ -17,7 +17,7 @@ COPY . . RUN npm run build # Финальный образ -FROM node:18-alpine AS production +FROM node:20-alpine AS production # Создаем пользователя для безопасности RUN addgroup -g 1001 -S nodejs @@ -26,10 +26,14 @@ RUN adduser -S nestjs -u 1001 # Устанавливаем рабочую директорию WORKDIR /app -# Копируем зависимости из builder -COPY --from=builder --chown=nestjs:nodejs /app/node_modules ./node_modules +# Копируем package files +COPY package*.json ./ + +# Устанавливаем только production зависимости +RUN npm ci --omit=dev && npm cache clean --force + +# Копируем собранное приложение из builder COPY --from=builder --chown=nestjs:nodejs /app/dist ./dist -COPY --from=builder --chown=nestjs:nodejs /app/package*.json ./ # Устанавливаем пользователя USER nestjs diff --git a/stack.env.example b/stack.env.example new file mode 100644 index 0000000..3bcf062 --- /dev/null +++ b/stack.env.example @@ -0,0 +1,57 @@ +# Пример файла переменных окружения для деплоя +# Скопируйте этот файл в stack.env и заполните реальными значениями + +# ================================= +# ОСНОВНЫЕ НАСТРОЙКИ ПРИЛОЖЕНИЯ +# ================================= + +# Среда выполнения (development, production) +NODE_ENV=production + +# Порт для приложения +PORT=3000 + +# Часовой пояс +TZ=Europe/Moscow + +# ================================= +# БАЗА ДАННЫХ (ОБЯЗАТЕЛЬНО) +# ================================= + +# URL подключения к PostgreSQL базе данных +# Формат: postgresql://username:password@host:port/database +DATABASE_URL=postgresql://your_username:your_password@your_host:5432/your_database + +# Максимальное количество подключений к БД +MAX_CONNECTIONS=10 + +# ================================= +# TELEGRAM BOT (ОБЯЗАТЕЛЬНО) +# ================================= + +# Токен Telegram бота (получить у @BotFather) +TELEGRAM_BOT_TOKEN=your_bot_token_here + +# ================================= +# ДОПОЛНИТЕЛЬНЫЕ НАСТРОЙКИ +# ================================= + +# Уровень логирования (error, warn, info, debug) +LOG_LEVEL=info + +# ================================= +# ИНСТРУКЦИИ ПО ЗАПОЛНЕНИЮ +# ================================= + +# 1. DATABASE_URL: +# - Замените your_username, your_password, your_host, your_database +# - Пример: postgresql://myuser:mypass@db.example.com:5432/mydb +# - Для облачных БД часто требуется SSL, это настроено автоматически + +# 2. TELEGRAM_BOT_TOKEN: +# - Создайте бота через @BotFather в Telegram +# - Скопируйте полученный токен +# - Пример: 1234567890:ABCdefGHIjklMNOpqrsTUVwxyz + +# 3. После заполнения переименуйте файл в stack.env: +# mv stack.env.example stack.env \ No newline at end of file