# Используем официальный образ Node.js 18 в slim-версии FROM node:18-slim # Устанавливаем рабочую директорию внутри контейнера WORKDIR /usr/src/app # Копируем package.json и package-lock.json для установки зависимостей COPY package*.json ./ # Устанавливаем зависимости, необходимые для работы приложения # Флаг --omit=dev пропускает установку devDependencies RUN npm install --omit=dev # Копируем все остальные файлы проекта в рабочую директорию COPY . . # Создаем директорию 'data', где будет храниться база данных SQLite RUN mkdir ./data # Меняем владельца всех файлов и папок в /usr/src/app на пользователя 'node' # Это необходимо, чтобы приложение имело права на запись в эту директорию (например, для создания и изменения файла БД) RUN chown -R node:node . # Указываем, что контейнер будет слушать порт 7860 EXPOSE 7860 # Устанавливаем переменную окружения для production ENV NODE_ENV=production # Команда для запуска приложения при старте контейнера CMD ["node", "server.js"]