# Этап 1: Подготовка Backend FROM python:3.10-slim AS backend WORKDIR /app COPY backend/requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY backend/ . # Этап 2: Сборка Frontend FROM node:18-alpine AS frontend WORKDIR /app/frontend COPY frontend/package*.json ./ RUN npm ci COPY frontend/ . RUN npm run build # Этап 3: Финальный образ FROM python:3.10-slim WORKDIR /app # Копируем Python и пакеты COPY --from=backend /usr/local /usr/local # Копируем весь код Backend COPY --from=backend /app/ /app/ # Копируем собранный статический Frontend COPY --from=frontend /app/frontend/out /app/static_frontend # Настраиваем окружение ENV PYTHONUNBUFFERED=1 ENV PYTHONPATH=/app # Запускаем сервер EXPOSE 7860 CMD ["python", "-m", "uvicorn", "backend.main:app", "--host", "0.0.0.0", "--port", "7860"]