# Многоэтапная сборка для Angular приложения FROM node:18-alpine AS builder # Установка рабочей директории WORKDIR /app # Копирование package файлов COPY package*.json ./ # Установка зависимостей RUN npm ci --only=production # Копирование исходного кода COPY . . # Сборка приложения RUN npm run build:prod # Финальный образ с nginx FROM nginx:alpine # Копирование собранного приложения COPY --from=builder /app/dist/erp-mvp-frontend /usr/share/nginx/html # Копирование конфигурации nginx COPY nginx.conf /etc/nginx/nginx.conf # Создание пользователя для безопасности RUN addgroup -g 1001 -S appgroup && \ adduser -u 1001 -S appuser -G appgroup # Смена владельца файлов RUN chown -R appuser:appgroup /usr/share/nginx/html && \ chown -R appuser:appgroup /var/cache/nginx && \ chown -R appuser:appgroup /var/log/nginx && \ chown -R appuser:appgroup /etc/nginx/conf.d # Переключение на непривилегированного пользователя USER appuser # Экспорт порта EXPOSE 80 # Команда запуска CMD ["nginx", "-g", "daemon off;"]