| FROM python:3.11-slim-bullseye |
|
|
| ENV DEBIAN_FRONTEND=noninteractive |
|
|
| |
| RUN apt-get update && apt-get install -y \ |
| |
| tigervnc-standalone-server \ |
| tigervnc-tools \ |
| |
| x11-utils \ |
| x11-xserver-utils \ |
| matchbox-window-manager \ |
| libxtst6 \ |
| libxrandr2 \ |
| |
| libavcodec-dev \ |
| libavdevice-dev \ |
| libavfilter-dev \ |
| libavformat-dev \ |
| libavutil-dev \ |
| libswscale-dev \ |
| libswresample-dev \ |
| libvpx-dev \ |
| libopus-dev \ |
| libssl-dev \ |
| |
| libxcomposite1 libxcursor1 libxdamage1 libxi6 libnss3 libatk1.0-0 \ |
| libatk-bridge2.0-0 libcups2 libdrm2 libgbm1 libasound2 libpangocairo-1.0-0 \ |
| libgtk-3-0 fonts-liberation fonts-noto-color-emoji \ |
| |
| wget curl gnupg procps \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| |
| RUN curl -fsSL https://deb.opera.com/archive.key | gpg --dearmor -o /usr/share/keyrings/opera-browser-keyring.gpg && \ |
| echo "deb [signed-by=/usr/share/keyrings/opera-browser-keyring.gpg] https://deb.opera.com/opera-stable/ stable non-free" \ |
| | tee /etc/apt/sources.list.d/opera-stable.list && \ |
| apt-get update && \ |
| apt-get install -y opera-stable && \ |
| rm -rf /var/lib/apt/lists/* |
|
|
| |
| RUN useradd -m -u 1000 user |
| USER user |
| ENV HOME=/home/user \ |
| PATH=/home/user/.local/bin:$PATH |
| WORKDIR $HOME/app |
|
|
| |
| COPY --chown=user:user requirements.txt . |
| RUN pip install --no-cache-dir -r requirements.txt |
|
|
| |
| COPY --chown=user:user . . |
|
|
| |
| RUN mkdir -p $HOME/opera-data && \ |
| mkdir -p $HOME/.vnc |
|
|
| |
| ENV DISPLAY=:99 \ |
| PYTHONUNBUFFERED=1 |
|
|
| EXPOSE 7860 |
| CMD ["python", "app.py"] |