gp / Dockerfile
opex792's picture
Update Dockerfile
204264d verified
# Используем официальный образ 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"]