magicboris commited on
Commit
f7e9277
·
verified ·
1 Parent(s): 6ab7b1d

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +19 -18
Dockerfile CHANGED
@@ -1,36 +1,37 @@
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/ ./
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
 
23
- # --- исходники backend (включая items.py) ---
24
  COPY --from=backend /app/ /app/
25
 
26
- # --- статический фронт ---
27
- COPY --from=frontend /app/frontend/.next /app/frontend/.next
28
- COPY --from=frontend /app/frontend/public /app/frontend/public
29
 
 
30
  ENV PYTHONUNBUFFERED=1
31
  ENV PYTHONPATH=/app
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: Сборка Frontend (как статического сайта)
 
 
 
 
 
 
 
2
  FROM node:18-alpine AS frontend
3
  WORKDIR /app/frontend
4
  COPY frontend/package*.json ./
5
  RUN npm ci
6
  COPY frontend/ .
7
+ RUN npm run build # Эта команда теперь создаст статический сайт в папке /out
8
+
9
+ # Этап 2: Подготовка Backend
10
+ FROM python:3.10-slim AS backend
11
+ WORKDIR /app
12
+ COPY backend/requirements.txt .
13
+ RUN pip install --no-cache-dir -r requirements.txt
14
+ COPY backend/ ./backend/
15
+ # Копируем корневые .py файлы, необходимые для backend
16
+ COPY items.py scan_research.py config.py clients.py ./
17
 
18
+ # Этап 3: Финальный образ
19
  FROM python:3.10-slim
20
  WORKDIR /app
21
 
22
+ # Копируем интерпретатор Python и установленные пакеты
23
  COPY --from=backend /usr/local /usr/local
24
 
25
+ # Копируем код приложения (backend и корневые .py)
26
  COPY --from=backend /app/ /app/
27
 
28
+ # Копируем собранный статический сайт из папки 'out'
29
+ COPY --from=frontend /app/frontend/out /app/static_frontend
 
30
 
31
+ # Устанавливаем переменные окружения
32
  ENV PYTHONUNBUFFERED=1
33
  ENV PYTHONPATH=/app
 
 
34
 
35
+ # Запускаем приложение
36
  EXPOSE 7860
37
+ CMD ["python", "-m", "uvicorn", "backend.main:app", "--host", "0.0.0.0", "--port", "7860"]