# Используем базовый образ 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" ]