FROM node:22 AS builder WORKDIR /usr/src/app/ # Сначала копируем только файлы, необходимые для установки зависимостей COPY ./package.json /usr/src/app/package.json COPY ./package-lock.json /usr/src/app/package-lock.json # Устанавливаем все зависимости RUN npm ci # Затем копируем исходный код проекта и файлы конфигурации COPY ./tsconfig.json /usr/src/app/tsconfig.json COPY ./server /usr/src/app/server # Сборка проекта RUN npm run build # Вторая стадия - рабочий образ FROM node:22 RUN mkdir -p /usr/src/app/server/log/ WORKDIR /usr/src/app/ # Копирование только package.json/package-lock.json для продакшн зависимостей COPY ./package.json /usr/src/app/package.json COPY ./package-lock.json /usr/src/app/package-lock.json # Установка только продакшн зависимостей RUN npm ci --production # Копирование собранного приложения из билдера COPY --from=builder /usr/src/app/dist /usr/src/app/dist COPY --from=builder /usr/src/app/server /usr/src/app/server EXPOSE 8044 CMD ["npm", "run", "up:prod"]