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