magicboris commited on
Commit
721e0d6
·
verified ·
1 Parent(s): b44af33

Update Dockerfile

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