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"]