Alvin3y1 commited on
Commit
baec2b3
·
verified ·
1 Parent(s): 5731416

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +83 -0
Dockerfile ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.11-slim-bullseye
2
+
3
+ ENV DEBIAN_FRONTEND=noninteractive
4
+
5
+ # 1. Install System Dependencies
6
+ RUN apt-get update && apt-get install -y \
7
+ # Display & Window Management
8
+ xvfb \
9
+ x11-utils \
10
+ x11-xserver-utils \
11
+ xdotool \
12
+ matchbox-window-manager \
13
+ # Capture & Input Libs
14
+ libx11-dev \
15
+ libxrandr2 \
16
+ libxtst6 \
17
+ # Video Encoding (AV)
18
+ libavcodec-dev \
19
+ libavdevice-dev \
20
+ libavfilter-dev \
21
+ libavformat-dev \
22
+ libavutil-dev \
23
+ libswscale-dev \
24
+ libswresample-dev \
25
+ libvpx-dev \
26
+ libopus-dev \
27
+ libffi-dev \
28
+ # Browser Dependencies (Common + Opera specifics)
29
+ libxcomposite1 \
30
+ libxcursor1 \
31
+ libxdamage1 \
32
+ libxi6 \
33
+ libnss3 \
34
+ libatk1.0-0 \
35
+ libatk-bridge2.0-0 \
36
+ libcups2 \
37
+ libdrm2 \
38
+ libgbm1 \
39
+ libasound2 \
40
+ libpangocairo-1.0-0 \
41
+ libgtk-3-0 \
42
+ fonts-liberation \
43
+ fonts-noto-color-emoji \
44
+ # Utilities
45
+ wget \
46
+ curl \
47
+ gnupg \
48
+ procps \
49
+ && rm -rf /var/lib/apt/lists/*
50
+
51
+ # 2. Install Opera Browser
52
+ RUN curl -fsSL https://deb.opera.com/archive.key | gpg --dearmor -o /usr/share/keyrings/opera-browser-keyring.gpg && \
53
+ echo "deb [signed-by=/usr/share/keyrings/opera-browser-keyring.gpg] https://deb.opera.com/opera-stable/ stable non-free" \
54
+ | tee /etc/apt/sources.list.d/opera-stable.list && \
55
+ apt-get update && \
56
+ apt-get install -y opera-stable && \
57
+ rm -rf /var/lib/apt/lists/*
58
+
59
+ # 3. Setup User
60
+ RUN useradd -m -u 1000 user
61
+ USER user
62
+ ENV HOME=/home/user \
63
+ PATH=/home/user/.local/bin:$PATH
64
+ WORKDIR $HOME/app
65
+
66
+ # 4. Install Python Dependencies
67
+ COPY --chown=user:user requirements.txt .
68
+ RUN pip install --no-cache-dir --upgrade pip && \
69
+ pip install --no-cache-dir -r requirements.txt
70
+
71
+ # 5. Copy Application
72
+ COPY --chown=user:user app.py .
73
+
74
+ # 6. Create Directories
75
+ RUN mkdir -p $HOME/opera-data
76
+
77
+ # 7. Environment Config
78
+ ENV DISPLAY=:99 \
79
+ RESOLUTION=1280x720
80
+
81
+ EXPOSE 7860
82
+
83
+ CMD ["python", "app.py"]