46 lines
1.3 KiB
Docker
46 lines
1.3 KiB
Docker
# Многоэтапная сборка для 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;"]
|