magicboris commited on
Commit
91caed9
·
verified ·
1 Parent(s): a721c3c

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +40 -0
Dockerfile ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ---------- build-stage 1: Python backend ----------
2
+ FROM python:3.11-slim AS backend-builder
3
+ WORKDIR /opt/udr
4
+
5
+ # Скопировать backend-код и зависимости
6
+ COPY backend/requirements.txt backend/
7
+ RUN pip install --no-cache-dir -r backend/requirements.txt
8
+
9
+ COPY backend/ backend/
10
+
11
+ # ---------- build-stage 2: Node frontend ----------
12
+ FROM node:20-alpine AS frontend-builder
13
+ WORKDIR /opt/udr/frontend
14
+ COPY frontend/package.json frontend/package-lock.json ./
15
+ RUN npm ci
16
+ COPY frontend/ ./
17
+ RUN npm run build # генерирует /.next статические файлы
18
+
19
+ # ---------- final image: объединяем всё ----------
20
+ FROM python:3.10-slim
21
+ WORKDIR /opt/udr
22
+
23
+ # --- системные пакеты ---
24
+ RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
25
+
26
+ # --- скопировать backend (из builder) ---
27
+ COPY --from=backend-builder /usr/local/lib/python3.10 /usr/local/lib/python3.10
28
+ COPY --from=backend-builder /opt/udr/backend /opt/udr/backend
29
+
30
+ # --- скопировать статический фронт ---
31
+ COPY --from=frontend-builder /opt/udr/frontend/.next /opt/udr/frontend/.next
32
+ COPY --from=frontend-builder /opt/udr/frontend/public /opt/udr/frontend/public
33
+ ENV NEXT_PUBLIC_BACKEND_URL=/api
34
+
35
+ # ---------- запуск ----------
36
+ ENV PYTHONUNBUFFERED=1
37
+ EXPOSE 7860 # любой свободный порт HF Space
38
+ CMD ["uvicorn", "backend.main:app", \
39
+ "--host", "0.0.0.0", "--port", "7860", \
40
+ "--proxy-headers", "--root-path", "/api"]