File size: 1,224 Bytes
a992a28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78

# Этап 1: Сборка React-фронтенда

FROM node:18-slim AS build

WORKDIR /app



# Копируем package.json и устанавливаем npm зависимости

COPY package.json package-lock.json ./

RUN npm install



# Копируем остальной код фронтенда

COPY . .



# Собираем production build (создает папку 'dist')

RUN npm run build



# Этап 2: Настройка Python-сервера (FastAPI)

FROM python:3.10-slim

WORKDIR /app



# Установка переменных окружения

ENV PYTHONUNBUFFERED 1

ENV PYTHONDONTWRITEBYTECODE 1



# Копируем Python-зависимости и устанавливаем их

COPY requirements.txt .

RUN pip install --no-cache-dir -r requirements.txt



# Копируем код бэкенда (FastAPI)

COPY ./backend ./backend



# Копируем собранный фронтенд из Этапа 1

COPY --from=build /app/dist ./dist



# Порт 7860 - стандартный для HF Spaces

EXPOSE 7860

ENV PORT=7860



# Команда для запуска Uvicorn (FastAPI)

CMD ["uvicorn", "backend.main:app", "--host", "0.0.0.0", "--port", "7860"]