29 lines
1.7 KiB
Docker
29 lines
1.7 KiB
Docker
![]() |
# Используем базовый образ 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" ]
|