morikotikk commited on
Commit
5dbeb43
·
verified ·
1 Parent(s): 591c1d3

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +9 -17
Dockerfile CHANGED
@@ -1,27 +1,19 @@
1
- FROM python:3.11-slim
 
2
 
3
- # Устанавливаем всё для графики и браузера
4
- RUN apt-get update && apt-get install -y \
5
- xvfb x11vnc novnc websockify \
6
- libgbm-dev libnss3 libatk-bridge2.0-0 libgtk-3-0 libasound2 \
7
- && rm -rf /var/lib/apt/lists/*
8
 
9
  WORKDIR /app
10
 
 
11
  COPY requirements.txt .
12
  RUN pip install --no-cache-dir -r requirements.txt
13
- RUN playwright install chromium
14
- RUN playwright install-deps chromium
15
 
16
  COPY . .
17
 
18
- # Создаем скрипт запуска графики и API
19
- RUN echo '#!/bin/bash\n\
20
- Xvfb :99 -screen 0 1280x1024x24 &\n\
21
- sleep 2\n\
22
- x11vnc -display :99 -nopw -forever -shared &\n\
23
- /usr/share/novnc/utils/launch.sh --vnc localhost:5900 --listen 7861 &\n\
24
- export DISPLAY=:99\n\
25
- uvicorn app:app --host 0.0.0.0 --port 7860' > /app/run.sh && chmod +x /app/run.sh
26
 
27
- CMD ["/app/run.sh"]
 
 
1
+ # Базовый образ сразу с Python и Playwright (экономит 20 минут сборки)
2
+ FROM mcr.microsoft.com/playwright/python:v1.44.0-jammy
3
 
4
+ # Устанавливаем только виртуальный экран (быстро)
5
+ RUN apt-get update && apt-get install -y xvfb && rm -rf /var/lib/apt/lists/*
 
 
 
6
 
7
  WORKDIR /app
8
 
9
+ # Кэшируем зависимости
10
  COPY requirements.txt .
11
  RUN pip install --no-cache-dir -r requirements.txt
 
 
12
 
13
  COPY . .
14
 
15
+ # Создаем папку для скриншотов-монитора
16
+ RUN mkdir -p static
 
 
 
 
 
 
17
 
18
+ # Запускаем: виртуальный экран -> сервер
19
+ CMD ["xvfb-run", "--server-args=-screen 0 1280x1024x24", "uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]