# syntax=docker/dockerfile:1

# 1. Сборка Angular
FROM node:24-alpine AS build
WORKDIR /ui

# Сначала только манифесты — слой с зависимостями пересобирается лишь при их изменении.
# npm install, а не npm ci: сборка не должна падать, если package-lock.json разошёлся с package.json
COPY package*.json ./
RUN --mount=type=cache,target=/root/.npm \
    npm install --legacy-peer-deps --no-audit --no-fund

COPY . ./
RUN npx ng build


# 2. Раздача статики через nginx; /api проксируется на бэкенд
FROM nginx:alpine
COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=build /ui/static/browser /usr/share/nginx/html
EXPOSE 80

HEALTHCHECK --interval=15s --timeout=5s --start-period=10s --retries=5 \
    CMD wget -q --spider http://127.0.0.1/ || exit 1
