magicboris commited on
Commit
b68639b
·
verified ·
1 Parent(s): a57ea7f

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +21 -21
Dockerfile CHANGED
@@ -1,36 +1,36 @@
1
- # ---------- build backend ----------
2
  FROM python:3.10-slim AS backend
3
- WORKDIR /opt/udr
4
- COPY backend/requirements.txt backend/
5
- RUN pip install --no-cache-dir -r backend/requirements.txt
6
- COPY backend/ backend/
7
 
8
- # ---------- build frontend ----------
9
  FROM node:18-alpine AS frontend
10
- WORKDIR /opt/udr/frontend
11
  COPY frontend/package*.json ./
12
  RUN npm ci
13
- COPY frontend/ ./
14
- RUN npm run build # создает /.next
15
 
16
- # ---------- final image ----------
17
  FROM python:3.10-slim
18
- WORKDIR /opt/udr
19
 
20
- # файлы из двух предыдущих стадий
21
  COPY --from=backend /usr/local /usr/local
22
- COPY --from=backend /opt/udr/backend /opt/udr/backend
23
- COPY --from=frontend /opt/udr/frontend/.next /opt/udr/frontend/.next
24
- COPY --from=frontend /opt/udr/frontend/public /opt/udr/frontend/public
 
 
25
 
26
- # корневые питон-модули (важно!)
27
- COPY items.py scan_research*.py clients.py config.py /opt/udr/
28
-
29
- # окружение
30
  ENV PYTHONUNBUFFERED=1
31
- ENV PYTHONPATH=/opt/udr
32
  ENV NEXT_PUBLIC_BACKEND_BASE_URL=/api
33
  ENV NEXT_PUBLIC_BACKEND_PORT=7860
34
 
35
  EXPOSE 7860
36
- CMD ["python","-m","uvicorn","backend.main:app", "--host","0.0.0.0","--port","7860", "--proxy-headers","--root-path","/api"]
 
 
 
1
+ ######################## 1) BACKEND ########################
2
  FROM python:3.10-slim AS backend
3
+ WORKDIR /app
4
+ COPY backend/requirements.txt .
5
+ RUN pip install --no-cache-dir -r requirements.txt
6
+ COPY backend/ ./backend
7
 
8
+ ######################## 2) FRONTEND ########################
9
  FROM node:18-alpine AS frontend
10
+ WORKDIR /app/frontend
11
  COPY frontend/package*.json ./
12
  RUN npm ci
13
+ COPY frontend/ .
14
+ RUN npm run build # создаёт /.next
15
 
16
+ ######################## 3) FINAL IMAGE ########################
17
  FROM python:3.10-slim
18
+ WORKDIR /app
19
 
20
+ # --- bin + libs Python (включая uvicorn) ---
21
  COPY --from=backend /usr/local /usr/local
22
+ # --- исходники backend ---
23
+ COPY --from=backend /app/backend /app/backend
24
+ # --- статический фронт ---
25
+ COPY --from=frontend /app/frontend/.next /app/frontend/.next
26
+ COPY --from=frontend /app/frontend/public /app/frontend/public
27
 
 
 
 
 
28
  ENV PYTHONUNBUFFERED=1
29
+ ENV PYTHONPATH=/app # backend импортирует scan_research.py из корня
30
  ENV NEXT_PUBLIC_BACKEND_BASE_URL=/api
31
  ENV NEXT_PUBLIC_BACKEND_PORT=7860
32
 
33
  EXPOSE 7860
34
+ CMD ["python","-m","uvicorn","backend.main:app",
35
+ "--host","0.0.0.0","--port","7860",
36
+ "--proxy-headers","--root-path","/api"]