Spaces:
Paused
Paused
File size: 954 Bytes
b44af33 721e0d6 231df52 b68639b 231df52 91caed9 b68639b 721e0d6 91caed9 f7e9277 231df52 b68639b 91caed9 721e0d6 231df52 d3ec5b3 721e0d6 2a67450 d3ec5b3 721e0d6 f7e9277 91caed9 721e0d6 91caed9 9aee412 231df52 721e0d6 90cc4fb f7e9277 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# Этап 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"]
|