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" ] |