You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

20 lines
1.0 KiB
Docker

# Используем легковесный официальный образ Node.js. Alpine - это минималистичный дистрибутив Linux.
FROM node:20-alpine AS builder
# Устанавливаем рабочую директорию внутри контейнера
WORKDIR /app
# Копируем сначала только package.json и package-lock.json (если есть)
# Это ключевая оптимизация! Docker будет кэшировать этот слой, и npm install
# не будет запускаться каждый раз, если зависимости не менялись.
COPY package*.json ./
RUN echo -e 'nameserver 1.1.1.1\noptions single-request-reopen' > /etc/resolv.conf && \
cat /etc/resolv.conf && \
npm install --verbose
# Теперь копируем все остальные исходники
COPY . .
# Команда, которая будет выполняться по умолчанию для сборки проекта
CMD ["npm", "run", "build"]