# Используем базовый образ Node.js (выбери версию, совместимую с твоим проектом, 18-alpine - хороший выбор)
FROM node:18-alpine

# Устанавливаем рабочую директорию в контейнере
WORKDIR /usr/src/app

# Копируем package.json и package-lock.json (или yarn.lock)
# Это делается отдельно, чтобы воспользоваться кэшированием слоев Docker:
# если зависимости не изменились, Docker не будет переустанавливать их каждый раз.
COPY package*.json ./

# Устанавливаем зависимости приложения
RUN npm install --only=production # Устанавливаем только production зависимости
# Если у тебя есть devDependencies, которые нужны для запуска (маловероятно для простого Express),
# то используй просто RUN npm install

# Копируем остальные файлы приложения в рабочую директорию
COPY . .

# Переменная окружения для порта (можно переопределить в docker-compose.yml)
ENV PORT=5000

# Открываем порт, на котором будет работать приложение
EXPOSE ${PORT}

# Команда для запуска приложения
CMD [ "node", "server.js" ]
# Или если ты хочешь использовать скрипт из package.json для запуска в проде:
# CMD [ "npm", "start" ]