# ---------- STAGE 1: Build React App ---------- FROM node:22-alpine AS build WORKDIR /app # копируем package.json и package-lock.json из frontend/ COPY frontend/package*.json ./ RUN npm install # копируем весь src проекта фронта COPY frontend/ ./ RUN npm run build # ---------- STAGE 2: Nginx ---------- FROM nginx:alpine # чистим дефолтку RUN rm -rf /usr/share/nginx/html/* # копируем билд фронта COPY --from=build /app/dist /usr/share/nginx/html # создаём каталог под challenge заранее (на случай, если volume не примонтировался) RUN mkdir -p /var/www/certbot/.well-known/acme-challenge # копируем nginx.conf (он лежит в ./nginx/nginx.conf) COPY nginx/nginx.conf /etc/nginx/nginx.conf EXPOSE 80 443 CMD ["nginx", "-g", "daemon off;"]